Скрыть виджет на странице

Вопрос или проблема

Как я могу скрыть виджет на определенной странице (одна страница). Проведя час, я могу найти только плагины. Проблема в том, что я знаю, как это сделать с их помощью, но один виджет (рекламный виджет) расположен внутри панели моей темы, а не как виджет перетаскивания/броска, поэтому я не могу настроить его с помощью виджета.

Вот код виджета, который мне нужно скрыть на одной странице. Есть ли какое-то решение, как это сделать?

<?php if(get_option('gd_leader_ad')) { ?>

            <div id="leader-wrapper">

                <?php if(get_option('gd_logo_loc') == 'Small in navigation') { ?>

                                       <div id="ad-728-small">
                        <?php echo get_option('gd_leader_ad'); ?>
                    </div><!--ad-728-small-->

                <?php } else if(get_option('gd_logo_loc') == 'Large below navigation') {  ?>
                    <div id="ad-728">
                        <?php echo get_option('gd_leader_ad'); ?>
                    </div><!--ad-728-->


                <div id="logo-large">
                        <?php if(get_option('gd_logo_large')) { ?>
                        <a href="https://wordpress.stackexchange.com/questions/154453/<?php echo home_url(); ?>"><img src="<?php echo get_option('gd_logo_large'); ?>" alt="<?php bloginfo( 'name' ); ?>" /></a>
                        <?php } else { ?>
                        <a href="https://wordpress.stackexchange.com/questions/154453/<?php echo home_url(); ?>"><img src="<?php echo get_template_directory_uri(); ?>/images/logo-large.png" alt="<?php bloginfo( 'name' ); ?>" /></a>
                        <?php } 
                    </div><!--logo-large-->?>
                <?php } ?>
            </div><!--leader-wrapper-->

Вы можете использовать этот фрагмент. Просто убедитесь, что вы изменили идентификатор виджета:

<?php
add_filter( 'widget_display_callback', 'widget_display', 50, 3 );
function widget_display( $instance, $widget, $args ){
    if ( is_page() && $widget->id == 'text-39' ) {
        return false;
    }
    return $instance;
}
?>

Самый простой способ – использовать плагин WordPress. В каталоге есть множество бесплатных плагинов. Я настоятельно рекомендую Widget Options: https://wordpress.org/plugins/widget-options/. Проверьте изображение ниже для просмотра интеграции.

Скрыть виджет на странице

Удачи!

Просто найдите и активируйте плагин “Widget Logic” на панели управления WordPress –> плагины, который создает раздел “Widget logic”, позволяя вам задать некоторые условия для отдельных активных виджетов.

!is_page('home'); home –> ID страницы, заголовок страницы или слаг страницы.

Вставьте указанный выше код в разделе “Widget logic”, чтобы отобразить соответствующий виджет на всех страницах, кроме страницы “home”.

Ответ или решение

Как скрыть виджет на определенной странице в WordPress

Вам нужно скрыть определённый виджет на одной странице вашего сайта, и вы не можете использовать плагины, так как виджет встроен в панель темы, а не является элементов перетаскивания. Мы рассмотрим несколько способов достижения этой цели, опираясь на ваш код виджета и общие методы работы с WordPress.

1. Изменение кода в теме

Если вы предпочитаете не использовать плагины, вы можете добавить проверку для конкретной страницы в код вашего виджета. Вам потребуется использовать условную функцию is_page(). Вставьте следующий код в файл вашей темы, например, в header.php или functions.php, в зависимости от того, где виджет загружается.

<?php if(get_option('gd_leader_ad') && !is_page('название-страницы')) { ?>
    <div id="leader-wrapper">
        <?php if(get_option('gd_logo_loc') == 'Small in navigation') { ?>
            <div id="ad-728-small">
                <?php echo get_option('gd_leader_ad'); ?>
            </div><!--ad-728-small-->
        <?php } else if(get_option('gd_logo_loc') == 'Large below navigation') { ?>
            <div id="ad-728">
                <?php echo get_option('gd_leader_ad'); ?>
            </div><!--ad-728-->
        <?php } ?>
        <div id="logo-large">
            <?php if(get_option('gd_logo_large')) { ?>
                <a href="<?php echo home_url(); ?>">
                    <img src="<?php echo get_option('gd_logo_large'); ?>" alt="<?php bloginfo('name'); ?>" />
                </a>
            <?php } else { ?>
                <a href="<?php echo home_url(); ?>">
                    <img src="<?php echo get_template_directory_uri(); ?>/images/logo-large.png" alt="<?php bloginfo('name'); ?>" />
                </a>
            <?php } ?>
        </div><!--logo-large-->
    </div><!--leader-wrapper-->
<?php } ?>

Замените название-страницы на слаг или ID страницы, на которой вы хотите скрыть виджет.

2. Использование плагинов

Если использование кода не является вашим предпочтением или вы не хотите вносить изменения в файлы темы, вы можете воспользоваться одним из следующих плагинов:

  • Widget Logic: Этот плагин позволяет добавлять условия для показа виджетов. После активации плагина у вас появится поле "Widget Logic" в настройках виджета. Введите условие !is_page('название-страницы'), заменив название-страницы на нужный слаг или ID.

  • Widget Options: Этот плагин также предоставляет возможность управлять видимостью виджетов. Он более интуитивен и позволяет легко определять, на каких страницах отображать виджеты, не требуя от вас навыков программирования.

3. Общие замечания

  • Чистота кода: Убедитесь, что ваш код аккуратен и не нарушает общую структуру страницы. Если ввести ошибку, это может привести к сбоям на сайте.

  • Тестирование: После внесения изменений протестируйте свою страницу, чтобы подтвердить, что виджет скрыт именно там, где нужно.

  • Резервное копирование: Всегда делайте резервные копии ваших файлов перед их изменением.

Заключение

Скрытие виджетов на определённых страницах в WordPress можно выполнить несколькими способами, от изменения кода до использования плагинов. Выбор метода зависит от ваших навыков и предпочтений. Используйте приведённые выше рекомендации для эффективного решения вашей задачи.

Оцените материал
Добавить комментарий

Капча загружается...