wordpress插件适用于本地主机但不适用于远程服务器

时间:2012-10-02 15:01:23

标签: javascript wordpress localhost remote-server

我写了一个wp插件,可以在本地主机上正常工作。它创建子主题目录并在那里复制home.php。但“主页”标签显示父主题中的旧内容。只有当我将home.php重命名为index.php时才有效。这是我的home.php

<?php
get_header(); ?>

    <div id="container">
        <div id="content" role="main">

        </div><!-- #content -->
    </div><!-- #container -->

此外,我在/ js文件夹中有script1.js文件,它应该向块添加一个文本框,但它没有。我像这样嵌入了脚本:

define('jsdir',plugin_dir_url(__FILE__).'js');
wp_enqueue_script('dk_js_myplugin',jsdir.'/script1.js',array('jquery'));

但是firebug没有在页面上显示它。 使用xampp本地安装wordpress时不存在这两个问题 感谢您的时间,非常感谢任何帮助!

5 个答案:

答案 0 :(得分:1)

define( 'jsdir', WP_PLUGIN_URL . '/' . dirname( plugin_basename( __FILE__ )) . '/js' );

表达式dirname( plugin_basename( __FILE__ ))返回目录wp-content/plugins中的插件位置。阅读plugin_basename()。常量WP_PLUGIN_URL返回插件目录的绝对路径。

在插件的代码中尝试:

<?php

var_dump( WP_PLUGIN_URL );
var_dump( dirname( plugin_basename( __FILE__ )));

// output should be like this:
string(36) "http://domain.tld/wp-content/plugins" 
string(9) "my-plugin"

用于添加脚本的Init函数:

add_action( 'init', 'plugin_register_css_js' );
function plugin_register_css_js()
{
    global $wp;
    $current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );

    if( $current_url == 'mypage' )
    {
        wp_enqueue_script( 'js', $jsdir . '/script1.js', array( 'jquery' ));
    }
}

答案 1 :(得分:0)

如果您通过FTP访问(我假设您这样做),有时会出现权限问题,然后尝试使用权限。它也可能有助于解决php错误。

ini_set('error_reporting', E_ALL );
ini_set('display_errors', 1 );

答案 2 :(得分:0)

您可以通过Firebug检查它是否在您的远程服务器上加载了script1.js文件(不会产生404错误)?

答案 3 :(得分:0)

您的浏览器不会“调用”script1.js文件(参见附图)enter image description here

我建议您重新检查您的模块,以便确保脚本已加载到标记中。

答案 4 :(得分:0)

你做了以下事情:

function load_dk_scripts() {
    wp_enqueue_script(
        'dk_js_myplugin',
        'http://david.onenonly.info/wp-content/plugi‌​ns/childtheme/js/script1.js',
        array('jquery')
    );
}
add_action('wp_enqueue_scripts', 'load_dk_scripts');