Запрещаем Disqus выводить JS код и другие скрипты везде, кроме страниц и записей
Disqus выводит свой яваскрипт в тех разделах сайта, где это вообще не нужно? Добавьте следующий сниппет в файл functions.php вашей темы или в плагин для сайта WordPress и скрипты от дискасс будут подгружаться только на записях is_singular или на страницах, где комментарии разрешены.
add_action( 'wp_head', 'tgm_tame_disqus_comments' ); function tgm_tame_disqus_comments() { if ( is_singular( array( 'post', 'page' ) ) && comments_open() ) return; remove_action( 'loop_end', 'dsq_loop_end' ); remove_action( 'wp_footer', 'dsq_output_footer_comment_js' ); }
Изменяем цвета страниц/записей по статусу в админке — Черновик, На утверждении, Опубликовано, Запланировано, Личное
Добавление этого сниппета в functions.php вашей темы изменит фоновые цвета элементов в админке, а именно записей или страниц в списке в зависимости от статуса записи: Черновик, На утверждении, Опубликовано, Запланировано, Личное.
add_action('admin_footer','posts_status_color'); function posts_status_color(){ ?> <style> .status-draft{background: #FCE3F2 !important;} .status-pending{background: #87C5D6 !important;} .status-publish{/* no background keep wp alternating colors */} .status-future{background: #C6EBF5 !important;} .status-private{background:#F2D46F;} </style> <?php }
Создаем и применяем сайдбары к страницам/записям динамически
Довольно большой сниппет, по сравнению с обычно публикуемыми, но очень полезный. Этот сниппет позволяет вам автоматически создавать новые сайдбары просто добавив его название в массив. Также вы можете назначить динамически созданный сайдбар определенной странице, просто выбрав его из созданного вами же списка в админке (при редактировании записи/страницы).
Добавляем первый сниппет к functions.php вашей темы. Что он делает? Первое, он создает новый метабокс в редакторе страниц, который позволяет вам назначить странице динамически созданный сайдбар. Второе, вы видите массив из названий: Sidebar 01, Sidebar 02 и т.д. Это названия динамически создаваемых сайдбаров, которые вы можете изменить по своему усмотрению или же добавить новые. Скопируйте второй сниппет в ваш файл sidebar.php, заменив при этом содержимое по-умолчанию (то, что там было ранее) и все, настройка окончена.
snippet : PHP — functions.phpcopy
$dynamic_widget_areas = array( /* переименуйте или создайте новый динамический сайдбар */ "Sidebar 01", "Sidebar 02", "Sidebar 03", "Sidebar 04", "Sidebar 05", "Sidebar 06", "Sidebar 07", "Search Template", ); if ( function_exists('register_sidebar') ) { foreach ($dynamic_widget_areas as $widget_area_name) { register_sidebar(array( 'name'=> $widget_area_name, 'before_widget' => '<div id="%1$s" class="widget %2$s left half">', 'after_widget' => '</div>', 'before_title' => '<h3 class="widgettitle">', 'after_title' => '</h3>', )); } } add_action("admin_init", "sidebar_init"); add_action('save_post', 'save_sidebar_link'); function sidebar_init(){ add_meta_box("sidebar_meta", "Sidebar Selection", "sidebar_link", "page", "side", "default"); } function sidebar_link(){ global $post, $dynamic_widget_areas; $custom = get_post_custom($post->ID); $link = $custom["_sidebar"][0]; ?> <div class="link_header"> <? echo '<select name="link" class="sidebar-selection">'; echo '<option>Выберите сайдбар</option>'; echo '<option>-----------------------</option>'; foreach ( $dynamic_widget_areas as $list ){ if($link == $list){ echo '<option value="'.$list.'" selected="true">'.$list.'</option>'; }else{ echo '<option value="'.$list.'">'.$list.'</option>'; } } echo '</select><br />'; ?> </div> <p>Выберите сайдбар для этой страницы.</p> <?php } function save_sidebar_link(){ global $post; if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {return $post->ID;} update_post_meta($post->ID, "_sidebar", $_POST["link"]); } add_action('admin_head', 'sidebar_css'); function sidebar_css() { echo' <style type="text/css"> .sidebar-selection{width:100%;} </style> '; }
Следующий код вставляем в sidebar.php (с заменой исходного содержимого). Предварительно сделайте резервную копию!
<!-- begin sidebar --> <div id="sidebar"> <? global $post; $custom = get_post_custom($post->ID); $link = $custom["_sidebar"][0]; if($link != ''){ echo '<ul id="widgets">'; if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar($link) ) : endif; echo '</ul>'; } ?> </div> <!-- end sidebar -->