У меня вопрос о макете сайта с и без 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