Как загрузить jQuery только для одной конкретной страницы моей темы WordPress?

Я играю с темой WordPress. Я знаю, что могу использовать wp_enqueue_script в своем header.php для загрузки поставляемой WordPress библиотеки jQuery.

Я просто собирался использовать wp_enqueue_script в своем заголовке, но это кажется неэффективным, когда я хочу использовать его только на определенной странице (только на одной странице с определенным page_id.)

Учитывая это, как лучше включить jQuery только на одну конкретную страницу?

Предположительно, я не могу определить page_id в header.php, потому что этого не будет в The Loop, верно? Но я предполагаю, что мне не хватает довольно очевидного метода - я новичок в разработке тем...

Спасибо!


person Matt Gibson    schedule 14.08.2010    source источник


Ответы (2)


Да, вы можете, is_page не нужно вызывать в цикле, поскольку он не изменяться при запуске цикла. Таким образом, is_page(42) вернет TRUE только в том случае, если вы находитесь на странице с идентификатором 42. Это также работает с заголовком или именем страницы (слаг), что может быть более надежным в будущем, если вы когда-нибудь замените удалить эту страницу и заменить ее новой один с таким же слизняком.

person Jan Fabry    schedule 14.08.2010
comment
Ах, спасибо! У меня было ощущение, что я упускаю что-то очевидное. Я закончил с is_page('contact'), как если бы я использовал слаг вместо идентификатора, тогда я действительно вспомню, что я делал, когда снова посмотрю на код через три месяца! - person Matt Gibson; 14.08.2010
comment
Я слышал, что у них есть хорошее решение для этих проблем с памятью в PHP. Оказывается, вы можете поместить объяснение того, что вы намеревались сделать, между косой чертой и звездочкой, и другие смогут понять вас спустя месяцы, даже годы! :-) - person Jan Fabry; 14.08.2010
comment
Да, но что читабельнее, if (is_page(42)) /* If it's the contact page */ или if (is_page('contact'))? Я хороший комментатор, но если я смогу заставить код работать сам по себе, тем лучше... - person Matt Gibson; 16.08.2010

вот статья о динамических идентификаторах тела
http://perishablepress.com/press/2009/05/26/dynamic-body-class-id-php-wordpress/
после того, как вы получите имя своей страницы, вы можете добавить условное заявление в вашем шаблоне index.php, которое говорит что-то вроде этого в заголовке вашей страницы или перед закрывающим тегом body:

// $page_name would be the page name you extracted with a function from the post
if($page_name === 'about'){
    echo '<script type="text/javascript" src="jquery.js"></script>'
}
person mraaroncruz    schedule 14.08.2010