2013-11-13 4 views
0

Я пробовал размещать это на обмене WordPress, но, к сожалению, я больше не продвигался вперед, поэтому я пробовал его здесь. Надеюсь, это сработает!Показать случайные миниатюры из каждой категории - Wordpress

У меня такое чувство, что я на правильном пути, у меня просто нет достаточных знаний о PHP, чтобы получить гораздо больше, чем там, где я сейчас.

В настоящее время я использую следующий код для получения списка дочерних категорий из одной категории:

<?php 
    $taxonomyName = "category"; 
    $terms = get_terms($taxonomyName,array('parent' => 79)); 
    echo '<ul>'; 
    foreach($terms as $term) { 
     echo '<li>'; 
     echo '<a href="'.get_term_link($term->slug,$taxonomyName).'">'.$term->name.'</a><br/>'; 

     $thumbnails = get_posts('numberposts=1&orderby=rand'); 
     foreach ($thumbnails as $thumbnail) { 
     echo '<a href="' . get_permalink($thumbnail->ID) . '" title="' . esc_attr($thumbnail->post_title) . '">'; 
      if (has_post_thumbnail($thumbnail->ID)) { 
       echo get_the_post_thumbnail($thumbnail->ID, 'thumbnail'); 
      } else { 
      echo 'no thumbnail';  
     } 
     echo '</a>'; 
     } 
     echo '<li>'; 
    } 
    echo '</ul>'; 
?> 

Этот код работает несколько. Он возвращает список всех шести подкатегорий под родительским идентификатором 79. Однако я хочу также вернуть один случайный миниатюру в каждом из элементов списка для каждой из 6 подкатегорий.

К сожалению, этот код возвращает случайное эскиз из всех моих сообщений, а не только идентификатор 79 и его конкретный ребенок. Мне нужно это, чтобы вернуть один миниатюру из той же категории, которая возвращается в его родительском <li>.

Кроме того, код возвращает «нет эскиза», если код отсутствует, или если я принимаю else, он ничего не возвращает. Я хотел бы сделать так, чтобы он возвращал по крайней мере одно изображение каждый раз, поэтому в идеале была бы какая-то логика, которая говорит, что всегда возвращает хотя бы одно изображение. Я просто не знаю, как это сделать.

Есть ли простой способ сделать это? Я думаю, мне нужно отсортировать этот массив и вернуть категорию во вложенный цикл foreach, но, к сожалению, это над моей головой.

Я думаю, что я ищу что-то похожее на этого человека, но, к сожалению, они не получили никаких ответов. ->https://stackoverflow.com/questions/18750040/random-featured-image-based-on-category

Заранее благодарим за любую помощь!

ответ

0

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

Благодаря @Renishkhunt за помощь в получении ответа.

<?php 
    $taxonomyName = "category"; 
    $terms = get_terms($taxonomyName,array('parent' => 79)); 
    echo '<ul>'; 
    foreach($terms as $term) { 
     echo '<li><a href="'.get_term_link($term->slug,$taxonomyName).'">'.$term->name.'</a><br/>'; 

     $JAMterm = $term->slug; 

     global $wp_query; 
     $term = $wp_query->queried_object; 

     $args=array(
      'orderby' => 'rand', 
      'posts_per_page' => 1, 
      'post_type' => 'post', 
      'tax_query' => array(
       array(
        'taxonomy' => 'category', 
        'field' => 'slug', 
        'terms' => $JAMterm 
       ) 
      ) 
     ); 

     $new_query = null; 
     $new_query = new WP_Query($args); 

     while ($new_query->have_posts()) : $new_query->the_post(); 
      the_post_thumbnail(); 
     endwhile; 
     wp_reset_postdata(); 


     echo '</li>'; 
     } 
    echo '</ul>'; 
?> 
+0

Пришел к поиску базовой функции для захвата случайных цветных изображений для категории, в то время как этот цикл работает. Он имеет бесполезный код, как вы устанавливаете '$ term = $ wp_query-> queried_object;', но никогда не используйте его! И зачем устанавливать JAMterm, когда вы можете просто «термины» => $ term-> slug'? – bgallagh3r

+0

Я делаю это в основном потому, что я не разработчик php, и я не знаю, что делаю. Вы, очевидно, умнее меня, поэтому спасибо, что указали это. –

+0

Не работает для меня –

Смежные вопросы