Задать вопрос
facepook
@facepook
С детства болею неизлечимым сео-даром!

Как заставить вордпресс запускать стандартный шаблон записи после if?

Доброго!
Для некоторых записей использую другой шаблон, вот код:
function single_partner() {
     if (is_single(array(891,215,3644,1055,2122,2104,1962,3702,6281,1442))) {
        return TEMPLATEPATH . '/single-partner.php';
    }
    else {
      return TEMPLATEPATH . '/single.php';
      ;}
}
add_filter('single_template', 'single_partner');

Я просто заставил загружать single.php - все работает, НО:
- у меня есть произвольный тип записи и он повелся, теперь у него тоже отображается single хотя у него свой шаблон...
Как это исправить?
Заранее спасибо!
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
function single_partner_template( $single_template ) {
    if ( is_single( array( 891, 215, 3644, 1055, 2122, 2104, 1962, 3702, 6281, 1442 ) ) ) {
        $single_template = dirname( __FILE__ ) . '/single-partner.php';
    }
    return $single_template;
}
add_filter( 'single_template', 'single_partner_template' );

Фильтры всегда принимают в себя входящие данные. Не нужно их целиком заменять (в большинстве случаев), достаточно добавить исключение с помощью if, в противном случае возвращать неизмененное значение.

Еще поправил форматирование кода (Coding Standards же) и изменил название функции на более логичное и понятное.

ЗЫ: И еще у тебя в 7 строчке лишняя точка с запятой. Parse error и все дела.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы