单击wordpress后执行javascript永久链接不起作用

时间:2015-02-05 13:22:36

标签: jquery wordpress

我有一个插件,当wordpress页面加载时,用html替换文本{headernav}。它首次加载时工作正常,但如果我导航到另一个页面,{headernav}将显示而不是由javascript替换的html内容。

我尝试过的事情。

  1. 我使用了firebug并发现当我点击永久链接并且它进入帖子页面时,javscript被加载。
  2. 以下是插件加载的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
    

2 个答案:

答案 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添加一个配置文件,而不是仅仅依赖于使用绝对路径。

希望有所帮助。