Вывод произвольного поле автоматически

Настроил вывод различный Сайбаров с помощью Произвольного поля(ПП), т.е. чтобы На главное, архивах выходил 1 сайдбар,а на Записях всех уже совсем другой.
Реализовал так:
Разные сайдбары для записей (постов)

(условимся, что сайдбары в папке Темы существуют, предназначены для вывода в одном месте лейаута блога и отличаются друг от друга содержимым, пример названий: sidebar.php, sidebar-var2.phpи sidebar-var3.php). 

Находим в файлах Темы вызов сайдбара:
view plaincopy to clipboardprint?

      

и заменяем его на:
view plaincopy to clipboardprint?

    ID, "sidebar", true);  
    get_sidebar($sidebar);  
    ?>  

Теперь в каждой записи создаете произвольное поле sidebar, а в значение пишете ему часть имени (после sidebar- ) того сайдбара, который хотите показывать при просмотре этой записи: var2или var3. Если у одиночной записи нет произвольного поля sidebar, то выведется сайдбар «по-умолчанию» sidebar.php

Далее, для того чтобы мне не писать в ручную каждый раз это все, сделал вывод в каждой записи автоматически:

add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
	global $wpdb;
	if(!wp_is_post_revision($post_ID)) {
		add_post_meta($post_ID, 'sidebar', 'var2', true);
	}
}

Данный метод работает, но почему-то не на всех записях, на каких-то все рабоате отлично на каких-то не мешятся Сайдбар. В Произ. поле задается параметр сам, все тут нормально, но почему-то не принимается как основной.

Кто может подсказать решение данной проблемы или может сказть как можно релизоват ВЫвод различный Сайдбаров более простым методом???

smedvedev
Оцените автора
Добавить комментарий