Помогите исправить php код
Страницы: 1 2 След.
Помогите исправить php код
Помогите исправить php код вывода похожих материалов по тегам и категотиям.
Если есть материалы с одинаковым тегом... код  их выводит
если одинаковых тегов не... он должен выводить материалы с той же категории... но не выводит
помогите исправить(((


Код
<div class="related_posts"">
<p>Похожие материалы</p>
<?php
//for use in the loop, list 5 post titles related to first tag on current post
$tags = wp_get_post_tags($post->ID);
$categories = get_the_category($post->ID);

if ($tags) {
$tag_ids = array();
 foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
 $args=array(
 'tag__in' => $tag_ids, // Сортировка производится по тегам
 'orderby'=>rand, // Добавляем условие сортировки рандом (случайный подбор)
 'post__not_in' => array($post->ID),
 'showposts'=>4 // Цифра означает количество выводимых записей
);

$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
<?php the_post_thumbnail(); ?><br /><?php trim_title_words(7, '...'); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();
}

else  {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'showposts'=>4,
'orderby'=>rand,
'caller_get_posts'=>1);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
<?php the_post_thumbnail(); ?><br /><?php trim_title_words(7, '...'); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();

}

?>
</div>
 
Изменено: Armen Adamyan - 6 Декабря 2015 17:29
Один из лучших хостингов.
Одна из лучших партнерок.
Продаю плагины гаданий и гороскопа!
кто-нибудь((
if (!empty($tags))  попробуйте
Сан Евгенич, не помогло((
Изменено: Armen Adamyan - 7 Декабря 2015 13:01
вот это вообще

Код
 $category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'showposts'=>4,
'orderby'=>rand,
'caller_get_posts'=>1);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
<?php the_post_thumbnail(); ?><br /><?php trim_title_words(7, '...'); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();


самостоятельно работает?
Сан Евгенич, да...  там только одна функция <?php trim_title_words(7, '...'); ?> из functions.php
ну раз первый блок работает и второй работает, то надо условие поправить.
print_r($tags) когда нет одинаковых тегов, что выдает?
Сан Евгенич, пустота.. когда нет одинаковых тегов
ну пробуйте тогда в условии проверять переменную $tags. пробуйте empty(), isset(). Хотя пустота это как то подозрительно, пустоты быть не должно, хоть что то должно отдать, или массив пустой или еще что то
да, кстати, а что выдает принт переменной когда совпадения есть? Массив?
Сан Евгенич, выводить 4 материала
а принт выводит это:


Код
Array ( [0] => stdClass Object ( [term_id] => 43 [name] => контент [slug] => kontent [term_group] => 0 [term_taxonomy_id] => 43 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 1 [filter] => raw ) [1] => stdClass Object ( [term_id] => 24 [name] => оптимизация [slug] => optimizaciya [term_group] => 0 [term_taxonomy_id] => 24 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 5 [filter] => raw ) [2] => stdClass Object ( [term_id] => 42 [name] => текст [slug] => tekst [term_group] => 0 [term_taxonomy_id] => 42 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 1 [filter] => raw ) [3] => stdClass Object ( [term_id] => 44 [name] => уникальность [slug] => unikalnost [term_group] => 0 [term_taxonomy_id] => 44 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 1 [filter] => raw ) )
 
Изменено: Armen Adamyan - 7 Декабря 2015 15:45
Ну попробуйте первое условие

Код
if ($tags) {
поменять на

Код
if (isset($tags) && !empty($tags)) {
в 


Код
<div class="related_posts"">
кавычка лишняя закрывающая
Сан Евгенич, неее((( не помагло
вставьте вот этот код  и откеройте там, где точно есть совпадения тегов
Код
<div class="related_posts"">
<p>Похожие материалы</p>
<?php
//for use in the loop, list 5 post titles related to first tag on current post
$tags = wp_get_post_tags($post->ID);
$categories = get_the_category($post->ID);

if ($tags) {
$tag_ids = array();
 foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
 $args=array(
 'tag__in' => $tag_ids, // Сортировка производится по тегам
 'orderby'=>rand, // Добавляем условие сортировки рандом (случайный подбор)
 'post__not_in' => array($post->ID),
 'showposts'=>4 // Цифра означает количество выводимых записей
);

$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
<?php the_post_thumbnail(); ?><br /><?php trim_title_words(7, '...'); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();

?>
</div>


<div class="related_posts"">
<p>Похожие материалы</p>
<?php
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'showposts'=>4,
'orderby'=>rand,
'caller_get_posts'=>1);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
<?php the_post_thumbnail(); ?><br /><?php trim_title_words(7, '...'); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();

}

?>
</div>

должно вывестись два блока, 1 с тегами 2 с категорий. Если выведутся оба посмотрим дальше
Сан Евгенич, да... два блока работают
Страницы: 1 2 След.
Похожие темы:
Читают тему (гостей: 2, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
18:07 ИКС Яндекс АПдейт 1 апреля 2026. Обновлён алгоритм расчёта 
19:02 Gambling Craft - гемблинг по белому 
17:03 LOSPOLLOS.COM - Конвертим по рецепту Хайзенберга. Dating, Mainstream, Binary Options 
15:51 Яндекс-ап 20 марта и похороны ChatGPT, Claude и Gemini. Считаем убытки 
10:16 Бесплатное расширение для Chrome — проверка ссылок прямо на странице 
10:12 Gmail разрешил менять основной адрес - теперь можно убрать старые ники без переноса аккаунта 
18:01 Раскрутка форума 
19:38 Monitex: Мониторинг с кэшбэком 80% в USDT 
19:31 Мониторинг обменников Сrypto-scout.io 
16:22 Рассылки СМС/SMS, Вайбер/Viber, Ватсап/Whatsapp, Телеграм/Telegram любой тематики по всему миру 
13:14 Аккаунты HeadHunter - Продам/верифицирую аккаунты работодателей hh.ru (HeadHunter, HH.RU, ХХ ) 
13:14 Продам аккаунты HeadHunter (Верификация на ИП) 
11:36 Продам сайт - продукты питания 
08:16 PROSMM-SHOP — Надёжный сервис продвижения в социальных сетях 
20:37 Точные прогнозы на футбол 
12:36 молодильные яблоки и живая вода 
04:35 Ставки на супер тренды в спорте 
15:49 Огородники 
16:25 8 марта: желаю аптайма 99.9% и e-e-a-t без локов 
22:45 С юмором по жизни! 
15:42 Голландцы влепили Grok по яйцам - теперь нельзя раздевать реальных людей, штраф 100к евро в день