wordpress插件在本地主机上工作,但不在远程服务器上
我写了一个可在本地主机上正常工作的wp插件。它创建子主题目录并将home.php复制到那里。但'主页'选项卡显示父主题中的旧内容。只有当我将home.php重命名为index.php时才有效。这是我home.phpwordpress插件在本地主机上工作,但不在远程服务器上
<?php
get_header(); ?>
<div id="container">
<div id="content" role="main">
</div><!-- #content -->
</div><!-- #container -->
而且我在/ JS文件夹script1.js文件应ADDA一个文本框块,但事实并非如此。我嵌入这样的脚本:
define('jsdir',plugin_dir_url(__FILE__).'js');
wp_enqueue_script('dk_js_myplugin',jsdir.'/script1.js',array('jquery'));
但萤火虫不显示在页面上。 这两个问题都不存在本地安装WordPress的xampp 感谢您的时间,任何帮助,高度赞赏!
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"
初始化FUNC键添加脚本:
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'));
}
}
你好@doktorgradus!感谢您的回应。这是我什么时候得到你的建议片段[链接] http://david.onenonly.info/ script1.js不包括即使我把绝对路径 –
嗯。在哪个目录下'script1.js'?在插件目录或主题目录?尝试'var_dump(plugin_basename(__FILE__));',它输出什么? – doktorgradus
script1.js是在这里:http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js 正如你所看到的,我检查选项的价值之前,将页面添加到 'if(dk_options .opt){ \t \t contentID.appendChild(newForm); \t}' 和我通过 'dk_options.opt' 像这样 'wp_localize_script脚本( 'dk_js_myplugin', 'dk_options',$选择);'在我的PHP文件 –
如果您通过FTP访问有些时候,它的权限问题(我认为你这样做),那么尝试玩弄权限。它也可能有助于打开php错误。
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
非常感谢,我会尝试并发布结果 –
我会建议使用:error_reporting(E_ALL | E_STRICT); –
不好意思写了,但包括'error_reporting(E_ALL | E_STRICT);'和'ini_set(...)'没有透露任何东西 –
能否请您通过Firebug的检查,它加载的script1.js文件(不产生一个404错误),您的远程服务器上?
Hello @Laurent,我检查了页面上的'Script'选项卡上的萤火虫, t显示脚本。你的意思是?请参阅页面:http://david.onenonly.info/ –
的script1.js文件不是由您的浏览器“称为”(见图片附后)
我会建议你重新检查你的模块,这样就可以确保脚本在标签加载。
你好@Laurent脚本地址是这样的:http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js 但即使插入绝对URL,它也不会被包含:'wp_enqueue_script('dk_js_myplugin','http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js',array( 'jquery'));' 你知道这是为什么吗? –
你做以下几点:
function load_dk_scripts() {
wp_enqueue_script(
'dk_js_myplugin',
'http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js',
array('jquery')
);
}
add_action('wp_enqueue_scripts', 'load_dk_scripts');
谢谢,问题出在'add_action'函数 –
太棒了!感谢更新 ;) –
检查您的任何权限错误服务器错误日志。 – SMacFadyen
谢谢你的提示,我会试试 –