Помогите исправить 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 След.
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
22:27 LOSPOLLOS.COM - Конвертим по рецепту Хайзенберга. Dating, Mainstream, Binary Options 
12:39 2Index - быстрая индексация страниц сайта и обратных ссылок 
06:17 3snet - гемблинг, беттинг, форекс, бинарные опционы, майнинг 
11:46 SharkBoss - партнёрская программа для монетизации ЛЮБЫХ видов трафика (включая спам). 
23:10 Dao.AD: Монетизация и покупка Push/Pops/Inpage и Video трафика! 
21:20 Rotapost прикрыли! Чем пользоваться? 
00:23 Раскрутка форума 
06:49 №1 Рассылка / Инвайтинг [TELEGRAM] | Приватный метод 
06:49 Trustpilot Reviews | Подниму рейтинг вашей компании 
06:47 Продвижение YouTube видео в топ поиска | Любой тип контента | Гарантия результата 
06:47 Установка|Настройка|Доработка|Наполнение сайтов|Дизайн|3D|Видеомонтаж 
04:57 AllEx.One - круглосуточный обмен BTC, ETH, USDT, XMR etc. 
04:08 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
21:25 Clearex.io - Больше чем обменник 
13:22 Бесплатный майнинг Tether (USDT) 
10:29 С юмором по жизни! 
16:49 monetizer.agency – рекламная сеть для взрослого и развлекательного трафика. 100$ новому вебмастеру 
20:43 Добро пожаловать в цифровой мир... 
15:59 Про мясо 
23:09 ПП от PMS remote.team - 200$ за команду 
13:28 Компьютерная мышь