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
Сообщений: 1434
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 641 раз
Репутация:   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;?>


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Выкладываю видео советов по заработку вебмастерам не только
Выкладываю видео советов по заработку вебмастерам не только
22 hakervova 4566 17.5.2018, 11:57
автор: Telnor
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыVulkanPartner.com - казино-партнерка №1. Только у нас до 50% от каждого депозита!
66 VulkanPartner 24656 16.5.2018, 16:14
автор: VulkanPartner
Открытая тема (нет новых ответов) CPA-PRIVATE.BIZ - премиальная товарная программа. Только ТОП ставки!
7 CPAPRIVATE 1397 11.5.2018, 17:00
автор: CPAPRIVATE
Горячая тема (нет новых ответов) Копирайтинг и рерайт: качественный сео-текст по доступной цене!
323 Sostavitel 96537 24.4.2018, 15:04
автор: Sostavitel
Открытая тема (нет новых ответов) Рутина и не только
10 ropique 1604 22.4.2018, 19:00
автор: ropique


 



RSS Текстовая версия Сейчас: 22.5.2018, 21:59
Дизайн