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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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


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


$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


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


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


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


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


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


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

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


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


Форумчане выше перемудрили.
В 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)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Dao.AD: пуши, попсы и не только! ТОП монетизация и арбитраж. | Акция 100 % отчисления!
22 Daopush 7762 16.5.2022, 13:43
автор: Daopush
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыCPA Private - премиальная товарная программа! Только ТОП ставки!
2 CPA_PRIVATE 1355 11.5.2022, 14:10
автор: CPA_PRIVATE
Открытая тема (нет новых ответов) Два филиала одной компании в одном городе
10 Ostromir 1513 13.4.2022, 22:52
автор: adamsadriane
Открытая тема (нет новых ответов) Нужно ли кому 3 "вечные" лицухи ISP 5 Lite
Продам за ненадобностью
6 Dani 912 3.4.2022, 13:17
автор: LigaGiga
Открытая тема (нет новых ответов) Ссылки для сайта онлайн игр (Только Украина)
0 errorrs 974 16.3.2022, 17:14
автор: errorrs


 



RSS Текстовая версия Сейчас: 28.5.2022, 1:46
Дизайн