2015-02-05 3 views
0

У меня есть плагин, который заменяет текст {headernav}, например, html при загрузке страницы wordpress. Он работает нормально, когда страница загружается первой, однако, если я перейду на другую страницу, вместо заголовка html, который будет заменен на javascript, будет отображаться {headernav}.Выполнение javascript после нажатия на wordpress permalink не работает

Вещи, которые я пробовал.

  1. Я использовал firebug и обнаружил, что javscript загружается, когда я нажимаю на ссылку постоянной ссылки, и она переходит на страницу сообщения.

Ниже приведен код 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

Значит, этот плагин загружается на страницу, на которую идет постоянная ссылка? говоря {nav} показывает, вы имеете в виду {headernav}? – Xeschylus

+0

Еще одна вещь. Вы используете относительный путь для $ .get(). У вас тот же корень, что и ваша первая страница? Если вы перейдете от example.com к example.com/post, то относительная ссылка будет нарушена, что приведет к ошибке. Это, в свою очередь, приведет к ошибке $ .get(). – Xeschylus

+0

Да, я имел ввиду {headernav}, я забыл изменить. Вы правы, этот путь выглядит так в адресной строке после щелчка по постоянной ссылке. http: // localhost/wordpress_dev/add-an-image-test/У вас есть предложения по использованию относительных ссылок в моем файле javascript? –

ответ

1

Использование wp_localize_script передавать переменные в ваш плагин. Кроме того, используйте встроенные функции ajax в Wordpress. Взгляните на this article

+0

Это сделало трюк (wp_localize_script). Я рассмотрю ваше встроенное предложение ajax. Благодарю вас, Ларри –

0

По моему комментарию, это проблема с вашим путём $ .get(), который приведет к ошибке на 404 и не даст выполнение кода.

абсолютный путь или конфигурационный файл обычно будет достаточно, путем добавления в/в передней части пути, так /wp-content/plugins/elemental/content/headernav.php

Это запустит JavaScript на ваш корневой домен (www.example.com) затем создайте оттуда путь, который вы хотите.

Чтобы быть уверенным, что это только в вашем домене, я обычно добавляю файл конфигурации также для корня, а не полагаюсь исключительно на использование абсолютного пути.

Надеюсь, что это поможет.

Смежные вопросы