我有一个插件,当wordpress页面加载时,用html替换文本{headernav}。它首次加载时工作正常,但如果我导航到另一个页面,{headernav}将显示而不是由javascript替换的html内容。
我尝试过的事情。
以下是插件加载的javascript代码。
使用Javascript:
jQuery(document).ready(function($){//begin document ready function call
//place needed javascript for the plugin elements inside this function call
$.get("wp-content/plugins/elemental/content/headernav.php",function(element){
//the tag to replace
var headernav = "{headernav}";
//create instance of RegExp
var regEx = new RegExp(headernav,"g");
//get the html of the body
var html = $("body").html();
//replace the {headernav} with the html returned by the get method
var newValue = html.replace(regEx,element);
//update the body with the new html value
$("body").html(newValue);
});
//do not place any javascript code on or past this line
});//end document ready function call
答案 0 :(得分:1)
使用wp_localize_script将变量传递到插件中。也可以使用Wordpress内置的ajax函数。看看this article
答案 1 :(得分:0)
根据我的评论,你的$ .get()路径似乎是一个问题,它会在404上产生错误并且不会执行代码。
绝对路径或配置文件通常可以通过在路径前面添加a /来充分,所以/wp-content/plugins/elemental/content/headernav.php
这将在您的域根(www.example.com)上启动javascript,然后从那里构建到您想要的路径。
为了确保它只在您的域上,我通常也会为root添加一个配置文件,而不是仅仅依赖于使用绝对路径。
希望有所帮助。