Перейти к содержимому


Выбрать шаблон и создать сайт

Индивидуальный вывод анонсов в рубрике

#1 Шуртух

Шуртух
  • Пользователь
  • 97 сообщений
  • Репутация: 0
0

Отправлено 09 Октябрь 2015 - 21:53

Есть такая функция, чтоб в конкретной рубрике выводилось нужное кол-во анонсов на странице. То есть, везде выводится по 12, а в двух рубриках надо, чтоб было по 21...вставляю функцию, но работает почему то только для одной..как сделать, чтоб работала для двух и более..

function custom_posts_per_page($query){
if(is_category(420,430)){
$query->set('posts_per_page',21);
}
if(is_home()){
$query->set('posts_per_page',12);
}

Ну вот..заработало если сделать вот так

function custom_posts_per_page($query){
if(is_category(420)){
$query->set('posts_per_page',21);
}
if(is_category(430)){
$query->set('posts_per_page',21);
}
if(is_home()){
$query->set('posts_per_page',12);
}

Можно ли так делать...потому как все делаю методом тыка...


 

 

Сообщение отредактировал Шуртух: 09 Октябрь 2015 - 22:18

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Joomla вывод статей без категорий
  2. Вывод анонсов записей
  3. Категории WordPress без анонсов!?
  4. Вывод рубрик и подрубрик в вордпресс
  5. Вывод статьи в нескольких категориях

#2 miketomlin

miketomlin
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 10 Октябрь 2015 - 12:06

Можно, только оптимизируйте. Первые два блока объедините в один с использованием сложного условия (категория 420 или категория 430), вместо неполных ветвлений используйте полную форму ветвления. Еще скорее всего нужно сделать так, чтобы по итогам выполнения кода устанавливалось какое-то значение количества постов, а у вас при опред. условиях этого может и не произойти, поэтому вместо if(is_home()), видимо, нужно использовать просто else.


  • 0

#3 Шуртух

Шуртух
    Topic Starter
  • Пользователь
  • 97 сообщений
  • Репутация: 0

Отправлено 10 Октябрь 2015 - 12:55

А как объеденить? Скобку убрать? Я мало что смыслю в етом) 


  • 0

#4 miketomlin

miketomlin
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 10 Октябрь 2015 - 13:02

if(is_category(420)||is_category(430)) $query->set('posts_per_page',21);
else $query->set('posts_per_page',12);
Кстати, вы показали всю функцию или там есть продолжение?
Вот еще оптимальнее...
$query->set('posts_per_page',is_category(420)||is_category(430)?21:12);

  • 0

#5 Шуртух

Шуртух
    Topic Starter
  • Пользователь
  • 97 сообщений
  • Репутация: 0

Отправлено 10 Октябрь 2015 - 13:03

Кстати, вы показали всю функцию или там есть продолжение?
Вроде вся..а если третью добавлять рубрику, то как писать? 
if(is_category(420)||is_category(430)||is_category(440)) $query->set('posts_per_page',21);
else $query->set('posts_per_page',12);

Так?


  • 0

#6 miketomlin

miketomlin
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 10 Октябрь 2015 - 13:05

Да.
  • 1

#7 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 12 Октябрь 2015 - 21:32

Раз пошла такая пьянка, режь последний огурец

function custom_posts_per_page($query){

$limit = 12;
if(is_category(420) or is_category(430)){
    $limit = 21;
}

$query->set('posts_per_page', $limit);
}

Если знать как работает функция is_category, то возможно еще малость оптимизировать.

К примеру создать массив с необходимыми категориями и проверять, если эта категория есть, то 21. Проверять in_array(420, $arr_cats);


  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.



Оформление форума – IPBSkins.ru