scottb
  • 0
Гуру

Как определить, есть ли в публикации содержимое виджета?

  • 0

У меня есть зарегистрированная боковая панель под названием «my-header», которая влияет на абсолютное позиционирование элементов под ней в разметке.

Поэтому мне нужно выполнить запрос в header.php, чтобы определить, присутствует ли боковая панель для текущего сообщения, и записать идентификатор класса в тег body моей темы. Я буду использовать этот класс css для соответствующей настройки абсолютного позиционирования элементов.

Есть ли метод, который можно вызвать отдельно от метода, используемого для отображения боковой панели, чтобы определить, есть ли в сообщении содержимое виджета для виджета «моя боковая панель»? Например, тот, который просто возвращает true/false?

После просмотра widgets.php я попытался использовать is_active_sidebar(‘my-header’), но он возвращает true для всех страниц. Мне нужна функция, которая принимает сообщение в качестве аргумента. В противном случае, если их не существует, я полагаю, что создам свою собственную функцию.

Share
  1. Вы можете взглянуть на плагин Justin Tadlock My Snippets, wordpress.org/extend/plugins/my-snippets.

    • 0
  2. <?php
    $bodyclass = "";
    // are we on a 'single' page? e.g. a post or page or some other custom post type?
    if(is_single()){
        // is this a post of type 'page'? or is it a blogpost?
        global $post;
        if($post->post_type == 'page'){
            // good now to check if we have a sidebar with active content
            if( is_active_sidebar('my-header')){
                $bodyclass="wehavesidebarcontentyay";
            }
        }
    }
    
    ?>
    <body <?php body_class($bodyclass); ?>>
    

    Хотя я уверен, что если у вас есть body_class в теге body, то у вас уже есть необходимые классы CSS и селекторы, чтобы сделать это без кода PHP.

    • 0

Оставить ответ

You must login to add an answer.