Помогите разобраться с синтаксисом php в WordPress

137
04 августа 2017, 01:44

Мне нужно проверять пост по его типу и если он совпадает - выводить определенный шаблон.

Вот код single.php

$items = get_posts( $args ); //все товары 
$item_ids = array(); //только id-шники товаров 
foreach($items as $item): 
	if(!in_array($item->ID, $item_ids)) $item_ids[] = $item->ID; 
		endforeach; 
	if(in_array($post->ID, $item_ids)): //если текущий пост является товаром то выводим блок о товаре 
?> 
       
тут один шаблон, стандартный 
       
<?php if (is_single() && is_post_type('post_type')){ ?> 
 
здесь я пытаюсь осуществлять проверку по типу поста, и у меня не получается. Уверен что проблема в синтаксисе 
 
<?php } ?> 
       
          
<?php else: //Если текущий пост не товар, то выводим просто контент поста?> 
       
      тут второй шаблон 
       
<?php endif;?>

Этот код я добавил в свой functions.php для проверки по типу поста (инфу взял отсюда ). Отдельно этот код работает, но интегрировать в существующий не получается.

function is_post_type($type){ 
    global $wp_query; 
    if($type == get_post_type($wp_query->post->ID)) return true; 
    return false; 
}

Answer 1

Попробуйте заменить вот эту конструкцию

if (is_single() && is_post_type('post_type')) {...}

вот этой

$post_type = get_post_type($post->ID);
if ($post_type == 'post_type') {...}

В single.php проверка is_single() избыточна, т. к. вы уже находитесь в шаблоне для страницы поста

READ ALSO
Ошибка в *.tli файле

Ошибка в *.tli файле

Ошибка в строке return _result;

321
static const error C2864

static const error C2864

Перенимаю проект бывшего рабочего в команииПроект был разработан на GL Studio и генирирует очень много файлов сам, т

277
Есть ли аналог #include &ldquo;printBinary.h&rdquo; в С++

Есть ли аналог #include “printBinary.h” в С++

Дана программа с использованием поразрядных операторовПроблема в printBinary

383
WinAPI TCP Port Mapper

WinAPI TCP Port Mapper

Нужен исходник прокси сервера, пробрасывающего запросы от клиента (FireFox) к вышестоящему HTTP прокси и обратно

270