#php #wordpress
#php #wordpress
Вопрос:
ищу способ отображения только определенных скриптов на родительской странице и всех ее дочерних страницах. Я пытаюсь выполнить это без необходимости входить и добавлять каждый родительский / дочерний URL.
Вот что у меня было:
function answerConnect_add_script_wp_footer() {
/** Tells what pg to display on AND it's child pgs **/
if (is_page ( array('foley-al','fargo-nd','advantages','project-gallery','cabinet-redooring') ) ) {
?>
<script>
console.log("I'm an inline script tag added to the footer.");
( function( a , b , c , d , e , f , g ) { c[d] = c[d] || function() { (c[d].q = c[d].q || []).push(arguments); }; c[ '_lsAlias' ] = c[ d ]; e = a.createElement(b); e.type = 'text/javascript'; e.async = true; e.src = 'https://app.chatsupport.co/api/client/get/script/LS-1f4db298'; f = function() { g = a.getElementsByTagName(b)[0]; g.parentNode.insertBefore( e , g ); }; c.addEventListener( 'load' , f ); } )( document , 'script' , window , '_ls' ); _ls( 'init' , { 'projectId' : 'LS-1f4db298' } );
</script>
<?php
}
}```
I was later told this was wrong and should be:
```add_action( ‘wp_enqueue_scripts’, function() {
if ( is_page() amp;amp; in_array( $ //pageidofparent, get_post_ancestors( get_the_id()))) {
?>
<script>
console.log("I'm in your footer.");
( function( a , b , c , d , e , f , g ) { c[d] = c[d] || function() { (c[d].q = c[d].q || []).push(arguments); }; c[ '_lsAlias' ] = c[ d ]; e = a.createElement(b); e.type = 'text/javascript'; e.async = true; e.src = 'https://app.chatsupport.co/api/client/get/script/LS-1f4db298'; f = function() { g = a.getElementsByTagName(b)[0]; g.parentNode.insertBefore( e , g ); }; c.addEventListener( 'load' , f ); } )( document , 'script' , window , '_ls' ); _ls( 'init' , { 'projectId' : 'LS-1f4db298' } );
</script>
<?php
}
});
Я все еще новичок в этом, поэтому не уверен, как вообще использовать этот последний бит.
Комментарии:
1. Эта статья wpbeginner.com/wp-tutorials /… может указать вам правильное направление.
Ответ №1:
По мере необходимости добавьте этот код в свой wp-content/your-theme/functions.php
:
add_action( 'wp_footer', 'my_footer_scripts' );
function my_footer_scripts(){
if (is_tree(2)) { // Your parent page ID
?>
<script>
console.log("I'm an inline script tag added to the footer.");
( function( a , b , c , d , e , f , g ) { c[d] = c[d] || function() { (c[d].q = c[d].q || []).push(arguments); }; c[ '_lsAlias' ] = c[ d ]; e = a.createElement(b); e.type = 'text/javascript'; e.async = true; e.src = 'https://app.chatsupport.co/api/client/get/script/LS-1f4db298'; f = function() { g = a.getElementsByTagName(b)[0]; g.parentNode.insertBefore( e , g ); }; c.addEventListener( 'load' , f ); } )( document , 'script' , window , '_ls' ); _ls( 'init' , { 'projectId' : 'LS-1f4db298' } );
</script>
<?PHP
}
}
function is_tree($pid) { // $pid = The ID of the page we're looking for pages underneath
global $post; // load details about this page
if(is_page()amp;amp;($post->post_parent==$pid||is_page($pid)))
return true; // we're at the page or at a sub page
else
return false; // we're elsewhere
};
Объяснение
- Код использует действие WordPress
wp_footer
для добавления нашего пользовательского кода в нижний колонтитул is_tree()
это пользовательская функция для проверки определенной страницы и ее дочерних элементов по идентификатору страницы