我尝试在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>';
?>
此代码有些作用。它返回父ID下的所有六个子类别的列表,ID 79.但是,我还希望在每个列表项中为6个子类别中的每一个返回一个随机缩略图。
不幸的是,这段代码会从我的所有帖子中返回一个随机缩略图,而不仅仅是ID 79及其特定的孩子。我需要它从同一类别中返回一个缩略图,该缩略图在其父<li>
中返回。
此外,如果没有代码,代码将返回“无缩略图”,或者如果我取出else
,则不返回任何内容。我想把它带到每次至少返回一个图像的位置,所以理想情况下会有某种逻辑表示始终返回至少一个图像。我只是不知道该怎么做。
有一些简单的方法可以做到这一点吗?我想我需要对该数组进行排序并在嵌套的foreach循环中返回类别,但遗憾的是它已经超出了我的想法。
我想我正在寻找类似这个人的东西,但不幸的是,他们没有得到任何回复。 - &GT; https://stackoverflow.com/questions/18750040/random-featured-image-based-on-category
提前感谢您的帮助!
答案 0 :(得分:0)
因此,为了做到这一点,我需要先为每个循环执行a,将类别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>';
?>