X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Нужно вывести текст только в одной категории WP
sen8
sen8
Topic Starter сообщение 23.1.2015, 16:10; Ответить: sen8
Сообщение #1


Завсегдатай
*****

Группа: Active User
Сообщений: 869
Регистрация: 14.3.2011
Из: Украина
Поблагодарили: 124 раза
Репутация:   17  


День добрый, дамы и господа!
Нужно вывести кусочек текста только в одной категории на сайте Вордпресс (ID=5). Сделать это нужно на странице записи. Помогите, пожалуйста, с кодом, который нужно вставить в single.php
Заранее спасибо!


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
jokerov
jokerov
сообщение 23.1.2015, 16:46; Ответить: jokerov
Сообщение #2


Новичок
*

Группа: Viewer
Сообщений: 7
Регистрация: 23.1.2015
Поблагодарили: 7 раз
Репутация:   2  


Здравствуйте. На сколько я понял, Вам нужно вывести текст на странице записи при условии, что эта запись входит в определённую рубрику?
Для этого в том месте, где должен быть текст вставляем php код:
CODE
<?php
global $post;
$cat_id = 5;
$post_categories = wp_get_post_categories( $post->ID );
if(in_array($cat_id, $post_categories)){ ?>
Тут нужный текст или html код
<?php
}
?>

Сначало мы получаем список рубрик текущего поста, потом проверяем, есть ли в этом списке номер нужной рубрики. Если есть, то выводим текст.
Будут вопросы по wordpress - обращайтесь.

Сообщение отредактировал jokerov - 23.1.2015, 16:47


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 23.1.2015, 17:02; Ответить: Tollun
Сообщение #3


Старожил
******

Группа: Active User
Сообщений: 1595
Регистрация: 1.10.2009
Из: Хабаровск
Поблагодарили: 394 раза
Репутация:   66  


$post глобалезировать незачем.

да и...
Код
$category = get_the_category($post->ID);
if ( $category->cat_ID == 5 ) {
  print 'Hello World!';
}


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sen8
sen8
Topic Starter сообщение 23.1.2015, 17:14; Ответить: sen8
Сообщение #4


Завсегдатай
*****

Группа: Active User
Сообщений: 869
Регистрация: 14.3.2011
Из: Украина
Поблагодарили: 124 раза
Репутация:   17  


Tollun, не работает...
Цитата
<?php $category = get_the_category($post->ID);
if ( $category->cat_ID = 5 ) {
print 'Hello World!';
}
?>


jokerov, код работает, но этот текст выводится ещё и на странице категории под каждой записью.... а мне нужно только на странице записи.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
jokerov
jokerov
сообщение 23.1.2015, 17:20; Ответить: jokerov
Сообщение #5


Новичок
*

Группа: Viewer
Сообщений: 7
Регистрация: 23.1.2015
Поблагодарили: 7 раз
Репутация:   2  


Tollun, Функция get_the_category получает массив данных о всех категориях, к которым относится пост. В Вашем коде идёт обращение к массиву как к объёкту. Даже если обратиться к первому элементу массива, не факт что в нём будет нужная рубрика.

sen8, попробуйте тогда такой вариант. Тут добавил проверку is_single(), которая сработает если это страница записи.
CODE
<?php
$cat_id = 5;
$post_categories = wp_get_post_categories( $post->ID );
if(in_array($cat_id, $post_categories) and is_single()){ ?>
Тут нужный текст или html код
<?php
}
?>


Сообщение отредактировал jokerov - 23.1.2015, 17:22


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sen8
sen8
Topic Starter сообщение 23.1.2015, 17:31; Ответить: sen8
Сообщение #6


Завсегдатай
*****

Группа: Active User
Сообщений: 869
Регистрация: 14.3.2011
Из: Украина
Поблагодарили: 124 раза
Репутация:   17  


jokerov, огромнейшая благодарность, работает! У меня остался последний вопрос: если категории 2 (например, 5 и 6), то как их прописать. Пробую через запятую - не работает.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
jokerov
jokerov
сообщение 23.1.2015, 17:40; Ответить: jokerov
Сообщение #7


Новичок
*

Группа: Viewer
Сообщений: 7
Регистрация: 23.1.2015
Поблагодарили: 7 раз
Репутация:   2  


sen8, Для php функции in_array() можно указать массив в качестве первого параметра. В Вашем случае это будет выглядеть так: in_array(array(5, 6), $post_categories)

Сообщение отредактировал jokerov - 23.1.2015, 17:40


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 23.1.2015, 21:47; Ответить: andreykashops
Сообщение #8


WordPress is my Life..
******

Группа: Active User
Сообщений: 1427
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 633 раза
Репутация:   139  


Цитата(sen8 @ 23.1.2015, 15:14) *
код работает, но этот текст выводится ещё и на странице категории под каждой записью.... а мне нужно только на странице записи.

Если вы добавляете код в single.php, каким образом текст отображается в категории? Категория и данный файл в WP никак не связаны...


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alex_RD
Alex_RD
сообщение 24.1.2015, 7:31; Ответить: Alex_RD
Сообщение #9


Бывалый
****

Группа: User
Сообщений: 299
Регистрация: 25.11.2008
Поблагодарили: 131 раз
Репутация:   34  


Форумчане выше перемудрили.
В wp есть условный тег in_category
т.е., чтобы вывести какой-то текст в полной записи, которая находиться в категории с ID 5, достаточно такого кода:
Код
<?php if(in_category(5)): ?>
Выводим текст
<?php endif;?>

для нескольких категорий:
Код
<?php if(in_category( array( 1,2,3,4,5,6))): ?>
Выводим текст
<?php endif;?>


Сообщение отредактировал Alex_RD - 24.1.2015, 7:33


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) С 2018 года в соцсети и игры только по паспорту
41 MissContent 3366 Вчера, 15:19
автор: wertu
Открытая тема (нет новых ответов) Редирект только главной страницы
301 редирект
2 Gera 541 15.12.2017, 13:50
автор: Gera
Открытая тема (нет новых ответов) Как правильно сделать категории на сайте?
Хелппп!!!
5 norino 680 11.12.2017, 16:28
автор: One_on_One
Открытая тема (нет новых ответов) Рутина и не только
6 ropique 1016 11.12.2017, 6:49
автор: Denis_ua
Открытая тема (нет новых ответов) PSD2HTML верстка и не только
Верстка макетов Photoshop / Avocode / с картинки
8 Smile3D 410 10.12.2017, 17:52
автор: Smile3D


 



RSS Текстовая версия Сейчас: 19.12.2017, 0:41
Дизайн