首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相关文章由分类法定制插件开发问题

相关文章由分类法定制插件开发问题
EN

Stack Overflow用户
提问于 2017-04-06 07:33:18
回答 1查看 39关注 0票数 1

我面临一个自定义插件的问题,它将显示来自特定类别(移动)的相关帖子。如果没有后置匹配的分类法,则应该显示来自该特定类别的其他帖子。首先,我获取了当前post(single.php)的所有分类和术语。然后使用循环准备查询参数。这些代码适用于以下情况,

( a)我没有添加任何帖子标签(当前帖子),那么它显示的是来自同一类别(移动)的其他帖子,

( b)如果我增加了一个职位标签,并且还有其他职位与该职位标签的条款相匹配。

但是,当我添加了一个post标签时,它就不起作用了,并且没有与这些术语匹配的帖子。但是,在这里,我想,如果没有匹配的职位的条款,那么只显示其他职位,而不考虑条款。当have_posts失败时,我可以使用新的查询来完成这个任务,但是我在想,如果有其他方法可以使用相同的查询args,请提供帮助。

我正在放置我正在努力开发的代码。

代码语言:javascript
复制
    $post_args = array();

    $taxonomies = get_post_taxonomies( $post );

    foreach ($taxonomies as $key => $taxonomy) {
        # code...
        if($taxonomy == 'category') continue;
        $terms =  wp_get_post_terms( get_the_ID(), $taxonomy );
        $term_array = array();

        if($terms){
            foreach ($terms as $key => $value) {
                array_push($term_array, $value->slug);
            }

            array_push($post_args,
                array(
                    'taxonomy' => $taxonomy,
                    'field'    => 'slug',
                    'terms'    => $term_array,
                    )
                );
        }
    }

    $tax_query = array();
    $tax_query['relation'] =  'OR';

    foreach ($post_args as $key => $value) {
        # code...
        array_push($tax_query, $value);
    }

    $args = array(
        'post_type' => 'post',
            // 'category_name' => 'mobiles',
        'post__not_in' =>  array($curr_post_id),
        'posts_per_page' => 10,
        'orderby' => 'relevance',
        'order' => 'ASC',
        'tax_query' => 
        array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'category',
                'field'    => 'slug',
                'terms'    => 'mobiles',
                )
            ,
            array($tax_query)
            )
        );

    $the_query = new WP_Query( $args );
EN

Stack Overflow用户

回答已采纳

发布于 2017-04-29 10:01:09

在尝试了很多之后,我决定使用另一个post循环。例如,如果第一个循环没有结果,只需从类别中选择随机的post即可。如果第一个循环中很少有post (最多10个post),那么使用另一个循环来选择不包括从第一个循环获得的post ids的随机帖子。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43248593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档