if elseif для отдельных страниц произвольных типов WP

12
R1
На сайте с 08.11.2012
Offline
39
2067

Добрый день уважаемые требуется помощь в реализации...

Вобщем ситуация такая, есть у меня произвольные типы записей а также к ним произвольные таксономии, таких у меня около 5 штук.

Хочу выводить определенные блокив определенных разделах этих пользовательских типов. И почти получилось но столкнулся с проблеммой одиночных записей, условия которые я ставлю срабатывают, но срабатывают только для самой первой записи/условия

Приведу пример

if ((is_singular('knigi') && is_term ('sorta-pushkin', 'catknigi')) ||  is_tax ('catknigi','sorta-pushkin') )  { мой вывод блока1}

if ((is_singular('knigi') && has_term ('sorta-esenin', 'catknigi')) || is_tax ('catknigi','sorta-esenin') ) { МОй вывод блока2}
if ((is_singular('knigi') && has_term ('sorta-block', 'catknigi')) || is_tax ('catknigi','sorta-block') ) { Мой вывод блока3}

Получается так что если я захожу на страничку одиночной записи, которая принадлежит разделу Пушкин (post_type=knigi taxonomy=catknigi term=sort-pshkin) то у меня появляется блок (мой вывод блока1), если я перехажу на одиночную запись раздела есенин (post_type=knigi taxonomy=catknigi term=sort-esenin) то у меня попрежнему появляется (Мой вывод блока1), хотя по задумке должно быть Мой вывод блока2 ну ит.д, тоесть срабатывает только 1ый if.

Я думаю вся загвоздка в is_singular('knigi') && is_term ('sorta-pushkin', 'catknigi'))

первое is_singular понятно, что срабатывает, когда пользователь находится на любых отдельных типах страниц: пост, is_term почемуто вкупе неработает, либо я неправильно задал условие, но мне надо чтобы в условии можно было прописать $term $post_type и указать что для одиночных записей! на отдельных страницах (архивных) is_tax срабатывает как надо, а вот

is_singular && has_term нормально не работает, блоки меняются или не появляются, если нахожусь на одиночной записи с термином есенин у меня блок появляется для пушкина, обновлю и вообще пропадет, еще обновлю и появляется для блока (

кто знаком с ВП может я пропустил функцию?

Ну вот мои последние мысли в том чтобы сравнивать что в адрессной строке , но это както неправильно и в связи с небольшим познанием php незнаю как это реализовать

S3
На сайте с 29.03.2012
Offline
367
#1

я использовал is_single() для записи - http://codex.wordpress.org/Function_Reference/is_single

R1
На сайте с 08.11.2012
Offline
39
#2

а там можно указывать slug и taxonomy разве ?

-----

Попробовал, но история тажасамая, даже вообще не отображаются блоки(

---------- Добавлено 30.06.2014 в 12:11 ----------

структура у меня может немного сложновата ?

У меня есть виджет в сайтбаре там у меня стоит типо такого

if (is_tax(array(1,2,3,4,5)) || is_singular (a,b,s,c,d) || is_post_type_arhive(a,b,s,c,d) )

{
include(TEMPLATEPATH . '/includes/1.php') ;
include(TEMPLATEPATH . '/includes/2.php');
include(TEMPLATEPATH . '/includes/3.php') ;
}
else {
include(TEMPLATEPATH . '/includes/menu.php') ;
}
?>

а в файлах 1-3 php у меня тоже ифы

к примеру 1.php


<?php
$apppp = "";
if ( is_singular( '1') || is_post_type_archive (array('2','1')) || is_term ( '', '3' ) ) {


$args = array(
'show_option_all' => '',
'show_option_none' => __('No categories'),
'orderby' => 'name',
'order' => 'ASC',
'show_last_update' => 0,
'style' => 'list',
'show_count' => 0,
'hide_empty' => 1,
'use_desc_for_title' => 1,
'child_of' => 0,
'hierarchical' => 1,
'title_li' => NULL,
'number' => NULL,
'echo' => 1,
'depth' => 0,
'current_category' => 0,
'pad_counts' => 0,
'taxonomy' => 'сatknigi',
'walker' => 'Walker_Category'
);

$apppp = 'Вывод названия';}
?>
<?php if($apppp):?>

<div class="tabs-wrapper">
<ul class="tabs clear">
<li class="current"><span><?php echo $apppp ?></span></li>
</ul>
<div class="box1 visible">
<ul class="menuList3">


<?php
wp_list_categories( $args );
?>

</ul>
</div>
</div>
<br />
<?php endif ?>

в файле 2 и 3.php почти тоже самое только условий порядка 30-40

S3
На сайте с 29.03.2012
Offline
367
#3

Уж как то очень мудрено, я так сложно не реализовывал сортировку и фильтрацию записей.

Сочетать можно в if что угодно, вы используете логическое И или ИЛИ, в зависимости от того что вам надо. Я сочетал и таксонометрию и про-поля - все работает. вот сейчас реализовал поиск записей по нескольким произвольным полям - вроде вышло неплохо.

30-40 параметров - имхо, для ВП многовато.

Запутанный код, все это делают проще, но тут уж хозяин-барин

R1
На сайте с 08.11.2012
Offline
39
#4

чето проще я выхода ненашел, мне для каждой рубрики надо вывести определенный блок для страниц архива он один, для страниц одиночных записей он другой

---------- Добавлено 01.07.2014 в 00:13 ----------

а вывод у меня по средством цикла, тоесть для отдельной странице с рубрикой 1 мне нужен цикл 1, для архивной странице мне нужен вывод 1, для другой рубрики мне нужен вывод цикла 2 и т.д

---------- Добавлено 01.07.2014 в 00:14 ----------

is_tax срабатывает нормально, а вот для has_term && is_singelar нет(( хотя и там и там должно прити true что должно отобразить цикл этой рубрики в которой я нахожусь

S3
На сайте с 29.03.2012
Offline
367
#5

Я это все реализовываю по-другому, хоть и смысл такой же. Например создаю страницу новостей по компьютерной технике, к ней цепляю цикл вывода записей из определенной рубрике. Написал всего один шаблон. Он цепляется к странице. На странице в произвольном поле указываю номер рубрики откуда брать записи. В итоге создать вывод новой страницы, например по котяткам занимает 2 минуты - создание страницы, создание новой рубрики, после этого каждая новая запись из рубрики отображается на определенной странице. к архивам, тегам и прочему тому, что создает дубли страниц и мешает СЕО - не привязываюсь

R1
На сайте с 08.11.2012
Offline
39
#6

ну мне придется создать шаблоны для каждой рубрики,это будет гораздо больше когда че использовать 1 код и 30 условий if esle.

S3
На сайте с 29.03.2012
Offline
367
#7
redfox1986:
ну мне придется создать шаблоны для каждой рубрики,это будет гораздо больше когда че использовать 1 код и 30 условий if esle.

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

R1
На сайте с 08.11.2012
Offline
39
#8

шаблон вывода один


<div class="tabs-wrapper">
<ul class="tabs clear">
<li class="current"><span><?php echo $apppp ?></span></li>
</ul>
<div class="box1 visible">
<ul class="menuList3">


<?php
wp_list_categories( $app );
?>

</ul>
</div>
</div>
<br />
<?php endif ?>

а условий много


if ((is_singular('knigi') && is_term ('sorta-pushkin', 'catknigi')) || is_tax ('catknigi','sorta-pushkin') ) { мой вывод блока1 $app}

1 шаблон показывается на многих страницах, в зависимости условий, если в условии говорится что я нахожусь на странице пушкин, то у меня срабатывает в условиие что показать блок пушкина и т.д

S3
На сайте с 29.03.2012
Offline
367
#9

Тогда проще написать один шаблон а в него передавать условие вывода контента.

R1
На сайте с 08.11.2012
Offline
39
#10

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

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий