Intereting Posts
Скрыть содержимое после перехода на страницу 2 архива, показать содержимое, когда на первой странице Как перенаправить все страницы пользовательского типа сообщения template_redirect вызывается дважды Есть ли способ добавить функцию, которая будет запущена после создания блога? nginx или cherokee (+ php-fpm) для бэкэнд WordPress? Как работать с разными версиями jQuery? Измените сообщение, но сохраните старый Как добавить / получить ссылку на сообщение? Установите загружаемые файлы или каталог wp-содержимого на другой диск в Windows Server 2003 Переименуйте Index.php Получение перенаправления для вывода заголовка Ссылка на сетевой администратор, поврежденный после перехода на HTTPS Вывод короткого кода прикручивается, когда символ стрелки «<» присутствует в содержимом Установите перенос основного параметра Customizer 'header_image' в 'postMessage' URL-адрес папки с изображениями на Multisite

Показывать различные макеты веб-сайта, если боковая панель не добавлена

У меня вопрос о макете сайта с и без wp-панелей на боковой панели. Вот код, который у меня есть для моей зарегистрированной боковой панели.

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(products) ) : endif; ?> 

И это код, который у меня есть в functions.php

 if (function_exists('register_sidebar')) { $opts = array( 'name' => 'Products', 'before_widget' => '<div id="%1$s2" class="container %2$s">', 'after_widget' => '</div>', 'before_title' => '<p class="h4">', 'after_title' => '</p>' ); register_sidebar($opts); } 

Я написал свой собственный css для двух разных макетов при разработке веб-сайта для моего клиента. Это одностолбцовый макет и двухколоночный макет, который представляет собой малую и одну большую компоновку столбца (для цели виджета wp).

Есть ли способ показать веб-страницу в 1-столбце макета сайта, если я не добавил виджет wp на страницу, которую я хочу? Другими словами, веб-страница будет одностолбцовой, если нет примененного виджета или будет двухэтажный макет сайта, если эта страница с виджетами?

Наверное, так, что я хочу, чтобы это было.

 <?php if --- with sidebar --- ?> <div id="column-1"> Column 1 appears </div> <?php elseif --- without sidebar --- ?> <div id="column-2"> Column 2 appears </div> endif;?> 

Считаете ли вы, что так работает? Пожалуйста посоветуй. Будет здорово, если это можно сделать в wp php-кодировании. Спасибо!

Вы можете использовать is_active_sidebar() как условие для размещения ваших стилей. Он делает именно это – сообщает вам, есть ли у него какие-либо виджеты.

PS stop function_exists() безумие :), это совершенно бессмысленная проверка в современном WordPress.

Вы можете сделать что-то подобное в своих функциях.php:

 add_action( 'wp_head', 'dynamic_layout' ); function dynamic_layout() { echo '<style type="text/css">'; if ( is_active_sidebar( 'secondary' ) && is_active_sidebar( 'main' ) ) {//If both sidebars are active ?> #blog { width: 100%; } <?php } // End If both sidebars are active else if ( !is_active_sidebar( 'secondary' ) && is_active_sidebar( 'main' ) ) {/*If main sidebar here*/ ?> .post { width: 239px; margin-right: 7px; } <?php }/*End If main sidebar here*/ else if ( !is_active_sidebar( 'secondary' ) && !is_active_sidebar( 'main' )) {/*No sidebar*/ ?> #blog { float: none; max-width: 100%; } <?php } /*End No sidebar*/ else if ( is_active_sidebar( 'secondary' ) && !is_active_sidebar( 'main' ) ){/*If only secondary sidebar is here */ ?> #blog{ float: left; } <?php } /*End If only secondary sidebar is here */ echo '</style>'; }//End function dynamic_sidebar_layout