Запрещаем 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 вашей темы изменит фоновые цвета элементов в админке, а именно записей или страниц в списке в зависимости от статуса записи: Черновик, На утверждении, Опубликовано, Запланировано, Личное.
![change-admin-postpage-color-by-status-draft-pending-published-future-private-screenshot[1]](https://wpincode.com/wp-content/uploads/2014/01/change-admin-postpage-color-by-status-draft-pending-published-future-private-screenshot1.jpg)
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, заменив при этом содержимое по-умолчанию (то, что там было ранее) и все, настройка окончена.
![dynamically-create-and-attach-sidebars-to-pages-or-posts-screenshot[1]](https://wpincode.com/wp-content/uploads/2014/01/dynamically-create-and-attach-sidebars-to-pages-or-posts-screenshot1.jpg)
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 -->
