基于随机分类的WordPress查询

时间:2013-06-26 作者:user1305063

我正在绞尽脑汁解决这个问题,如果有人能帮忙,我将不胜感激

The scenario is,

我有一个与书籍相关的WordPress网站。

我有一个自定义的分类法,名为“History Books”,被称为“History\\u Books”。在这种特殊的分类法下,我有许多历史书籍(术语)。

  • 在我的/assets/images/books文件夹下,我有与特定预订(条款)相关的所有图像,即terms\\hsb1。jpg公司

    What I want is,

    我需要根据我的自定义分类法“history\\u books”运行随机查询,该分类法应返回随机选择的术语。

    然后我需要显示该特定术语的相关图像。

    该术语的总计数

    直接链接到术语存档页。

    In Second Step,

    我想展示与该特定术语相关的五篇文章。

    我尝试了很多组合,但都没有成功。最近,我尝试了这个代码

                <?php 
                $sugarquery = new WP_Query();
                $sugarquery->query( array( \'taxonomy\' => \'history_books\', \'orderby\' => \'rand\', \'showposts\' => 1 ) );
                while( $sugarquery ->have_posts() ) : $sugarquery ->the_post();
                ?>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    
                <?php
                $product_terms = wp_get_object_terms(\'history_books\');
                if(!empty($product_terms)){
                if(!is_wp_error( $product_terms )){
                echo \'<ul>\';
                foreach($product_terms as $term){
                echo \'<li><a href="\'.get_term_link($term->slug, \'history_books\').\'">\'.$term->name.\'</a></li>\'; 
                }
                echo \'</ul>\';
                }
                }
    
                endwhile; ?>    
    
    我确实查询了具体的税务信息,并随机返回了一个帖子,但之后什么都没有发生。

    请帮帮我,做这件事最好的方法是什么?

    BR公司

  • 1 个回复
    最合适的回答,由SO网友:TheDeadMedic 整理而成
    <?php
    
    $all_books = get_terms( \'history_books\' );           // Get all history book terms.
    $rand_book = $all_books[ array_rand( $all_books ) ]; // Select one at random.
    $related = get_posts(
        array(
            \'posts_per_page\' => 5,
            \'tax_query\'      => array(
                array(
                    \'taxonomy\' => \'history_books\',
                    \'terms\'    => array( $rand_book->term_id ),
                )       
            )
        )
    );
    
    ?>
    
    <h3>
        <a href="<?php echo get_term_link( $rand_book ) ?>">
            <img src="/path/to/images/terms_hsb<?php echo $rand_book->term_id ?>.jpg" alt="<?php echo esc_attr( $rand_book->name ) ?>" />
            <?php echo esc_html( $rand_book->name ) ?>
        </a> (<?php echo $rand_book->count ?>)
    </h3>
    
    <?php if ( $related ) : ?>
    
        <ul class="related">
            <?php foreach ( $related as $post ) : setup_postdata( $post ) ?>
    
                <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    
            <?php endforeach ?>
        </ul>
    
    <?php endif ?>
    
    结束

    相关推荐