Как я могу использовать условный оператор Wordpress для доставки определенного кода из нижнего колонтитула на конкретные страницы - PullRequest
0 голосов
/ 11 июля 2019

Я недавно добавил новую страницу с дополнительным кодом нижнего колонтитула. Я добавил это в footer.php. Тем не менее, эти коды отображаются для всех страниц моего сайта, так как они находятся в общем файле footer.php. Как я могу добавить условный оператор в моем нижнем колонтитуле перед тем кодом, который сделает этот код видимым только на той странице, которую я хочу? Поскольку между кодом есть некоторые конфликты, когда этот код появляется на всех страницах.

if( is_page(7656))
{
<script>
  $.noConflict();
jQuery(document).ready(function(){

    jQuery(window).scroll(function() {

        var docViewTop = jQuery(window).scrollTop();
        var docViewBottom = docViewTop + jQuery(window).height();
        var customBottom = (jQuery(window).height())/3;
        var viewPort = jQuery(window).height();

        // console.log('viewPort', jQuery(window).height());
        // console.log('customBottom', customBottom);
        // console.log('docViewTop', docViewTop);
        // console.log('docViewBottom', docViewBottom);

        jQuery(".detectActive").each(function() {

            var elemTop = jQuery(this).offset().top;
            var elemBottom = (elemTop + jQuery(this).height() );
            var difference = docViewBottom - elemBottom;

            // console.log('elemTop', elemTop);
            // console.log('elemBottom', elemBottom);
            // console.log('difference', difference);
            if(( difference >= customBottom) && (difference <= viewPort)) {

                console.log('show now');                
                let active = jQuery(this).attr("data-active");
                jQuery('.commonLink').removeClass("hover_class");
                jQuery('#'+active+'-nav').addClass("hover_class");
                console.log('visible', active);  
            }

        });
    });

});
</script>
}

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

Ответы [ 2 ]

1 голос
/ 14 июля 2019

Вот ваш код

Добавьте идентификаторы страниц в массив, разделите их на запятую <?php if ( is_page( array( 7656, 7655, 7651 )) ) ) : ?>

<?php if ( is_page( array( 7656 ) ) ) : ?>
<script>
  $.noConflict();
jQuery(document).ready(function(){

    jQuery(window).scroll(function() {

        var docViewTop = jQuery(window).scrollTop();
        var docViewBottom = docViewTop + jQuery(window).height();
        var customBottom = (jQuery(window).height())/3;
        var viewPort = jQuery(window).height();

        // console.log('viewPort', jQuery(window).height());
        // console.log('customBottom', customBottom);
        // console.log('docViewTop', docViewTop);
        // console.log('docViewBottom', docViewBottom);

        jQuery(".detectActive").each(function() {

            var elemTop = jQuery(this).offset().top;
            var elemBottom = (elemTop + jQuery(this).height() );
            var difference = docViewBottom - elemBottom;

            // console.log('elemTop', elemTop);
            // console.log('elemBottom', elemBottom);
            // console.log('difference', difference);
            if(( difference >= customBottom) && (difference <= viewPort)) {

                console.log('show now');                
                let active = jQuery(this).attr("data-active");
                jQuery('.commonLink').removeClass("hover_class");
                jQuery('#'+active+'-nav').addClass("hover_class");
                console.log('visible', active);  
            }

        });
    });

});
</script>
<?php endif; ?>
0 голосов
/ 14 июля 2019

Даже если ваш вопрос касается WordPress и использования условия PHP, вы также можете решить проблему на стороне клиента. WordPress добавляет класс к тегу body с идентификатором страницы или записи, которую вы просматриваете в данный момент, поэтому все, что вам нужно сделать, это добавить if ($ ('body'). HasClass ('page-id-7656')) к вашему коду, вот так:

<script>
$.noConflict();
jQuery(document).ready(function(){
    if ($('body').hasClass('page-id-7656')) {
        // The rest of your code goes here.
    }
});
</script>

Если, однако, вам нужно решение на чистом PHP, ответ @ andrey-shandrov будет верным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...