Javascript wordpress插件可以在本地主机上工作,但不能在远程服务器上工作
我写了一个wp插件,在本地主机上运行良好。它创建子主题目录并将home.php复制到那里。但“主页”选项卡显示父主题中的旧内容。只有当我将home.php重命名为index.php时,它才能工作。这是我的家Javascript wordpress插件可以在本地主机上工作,但不能在远程服务器上工作,javascript,wordpress,localhost,remote-server,Javascript,Wordpress,Localhost,Remote Server,我写了一个wp插件,在本地主机上运行良好。它创建子主题目录并将home.php复制到那里。但“主页”选项卡显示父主题中的旧内容。只有当我将home.php重命名为index.php时,它才能工作。这是我的家 <?php get_header(); ?> <div id="container"> <div id="content" role="main"> </div><!-- #content --
<?php
get_header(); ?>
<div id="container">
<div id="content" role="main">
</div><!-- #content -->
</div><!-- #container -->
但是firebug没有在页面上显示它。
使用xampp在本地安装wordpress时不存在这两个问题
感谢您的时间,我们非常感谢您的帮助
define( 'jsdir', WP_PLUGIN_URL . '/' . dirname( plugin_basename( __FILE__ )) . '/js' );
Expressiondirname(plugin\u basename(\uu文件\uu))
返回目录中的插件位置wp content/plugins
。了解。常量WP\u PLUGIN\u 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"
有时,如果您可以通过FTP进行访问(我想您可以),则会出现权限问题,然后尝试使用权限。这也可能有助于打开php错误
ini_set('error_reporting', E_ALL );
ini_set('display_errors', 1 );
您能否通过Firebug检查一下,它是否在您的远程服务器上加载了script1.js文件(没有生成404错误?您的浏览器没有“调用”script1.js文件(见附图)
我建议您重新检查模块,以便确保脚本已加载到标记中。您是否执行了以下操作:
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');
检查您的服务器错误日志中是否有任何权限错误。感谢您的提示,我将尝试itHello@Laurent,我检查了页面上firebug的“脚本”选项卡,但它没有显示脚本。你是说这个吗?请看页面:你好@doktorgradus!谢谢你的回复。这就是当我发现你建议的代码片段[link]script1.js没有被包括在内时得到的结果,即使我把绝对路径放进去了。
script1.js
位于哪个目录?插件目录还是主题目录?尝试var_dump(plugin_basename(_文件__))
,它输出了什么?script1.js在这里:正如您所看到的,我在将表单添加到页面之前检查选项值if(dk_options.opt){contentID.appendChild(newForm);}
并且我将'dk_options.opt'传递给脚本,就像这样wp_本地化_脚本('dk_js__myplugin','dk_options',$opt)
在我的php文件中,我知道您定义了jsdir
并在函数中使用了wp\u enqueue\u script
?您可以在感谢@doktorgradus之后使用define()
。我将wp\u enqueue\u script
放在plugin\u register\u css\u js函数中,但我这样调用该函数:add\u action('template\u redirect','is\u home\u check')
和insideis_home\u check
i checkif(is_home()){plugin\u register\u css\u js()}
这不是将脚本包含在需要它的页面上而不是所有页面上的正确方法吗?P.S.很高兴在我将模板改为initСПааСааааб后,它起了作用。非常感谢,我将尝试发布结果,但包括错误报告(E|u ALL | E|u STRICT)
和ini\u set(…)
没有显示任何内容Hello@Laurent脚本地址如下:但即使我插入绝对URL,也没有包含它:wp\u enqueue\u脚本('dk\u js\u myplugin','http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js,数组('jquery')
你知道为什么会这样吗?谢谢,问题出在添加操作
功能中
ini_set('error_reporting', E_ALL );
ini_set('display_errors', 1 );
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');