WP html виджет и условия вывода

L
На сайте с 01.02.2011
Offline
163
214

Вопрос касательно виджета с хтмл кодом. Есть ли способ добавить к нему php условия вывода? к примеру чтобы этот виджет или часть содержимого виджета показывались только на главной или на выбранных мною страницах сайта?

Очень не удобно каждый раз создавать дубликаты кусков темы с надстройками кода. А плагины которые позволяют какие то хитрые пхп надстройки применять там, где их вырезает wp - уже долго не обновлялись, либо быстро заканчивают жизнь.

AutoBlogger
На сайте с 05.10.2011
Offline
115
#1
Запросто. Через проверку по is_front_page, is_single, is_singular, is_home, is_archive и т.д.:
class my_widget extends WP_Widget {

...

    public function widget($args, $instance) {
        $title = apply_filters('widget_title', $instance['title']);
        echo $args['before_widget'];
        if (!empty($title)) {
            echo $args['before_title'] . $title . $args['after_title'];
        }
        echo 'Часть HTML, которую надо показывать всем';
        if (is_front_page()) {
            echo 'Часть HTML, которую надо показывать только на главной странице';
        } elseif (is_single(666)) {
            echo 'Часть HTML, которую надо показывать только в посте с ID 666';
        }
        echo $args['after_widget'];
    }

...

}

function load_my_widget() {
    register_widget('my_widget');
}

add_action('widgets_init', 'load_my_widget');
🪄 www.cyberseo.net - плагин для создания автоблогов под WordPress, с поддержкой искусственного интеллекта OpenAI GPT-4, Anthropic Claude, Google Gemini Pro, DALL·E 3 и Stable Diffusion XL | 📣 Импорт RSS / XML / JSON/ CSV / HTML в WooCommerce: https://bit.ly/3EyYQp4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий