如何始终始终首先显示搜索结果中的特定帖子

时间:2019-02-15 12:14:51

标签: php wordpress filter foreach

我创建了一个搜索过滤器,用于随机显示帖子,我想知道如何始终在搜索结果的第一位置显示特定的帖子项目,并正常显示其余项目。

感谢您的帮助@dassoun,这是查询:

$taxonomies = array('recipe_type', 'product_category', 'recipe_category', 'recipe_event', 'recipe_diet');
foreach ($taxonomies as $taxonomy) {
    $taxonomies_taxonomy[$taxonomy] = get_taxonomy($taxonomy);
    $taxonomies_terms[$taxonomy] = get_terms(
        array(
        'taxonomy'      => $taxonomy,
        'hide_empty'    => false,
        'meta_key'      => 'filter_order',
        'orderby'       => 'meta_value_num',
        'order'         => 'ASC'
        )
    );
    $taxonomies_selected[$taxonomy] = (get_query_var($taxonomy)) ? get_query_var($taxonomy) : '';
}

1 个答案:

答案 0 :(得分:0)

我认为您应该看看“ UNION”运算符。

来自https://www.w3schools.com/sql/sql_union.asp: UNION运算符用于合并两个或多个SELECT语句的结果集。

  • UNION中的每个SELECT语句必须具有相同的列数
  • 这些列还必须具有相似的数据类型
  • 每个SELECT语句中的列也必须顺序相同

想法是:

select * from post where (hastobetop = 1 or id = myid or whatever)
UNION
yourfilteredrequest

您可能必须从过滤的请求中排除第一个请求返回的行。

[编辑] 抱歉,我没有看到它是特定于wordpress的 [/ edit]