【问题标题】:Change Search URL更改搜索网址
【发布时间】:2019-05-02 21:58:39
【问题描述】:

我正在尝试将我的 WordPress 搜索 URL 更改为一些用户友好的 URL。

我当前的搜索网址如下所示:

?s=fim&post_type%5B%5D=post&post_type%5B%5D=blog

我在哪里过滤搜索并仅从 post_type 获取帖子:帖子和博客。

这两种方法我已经试过了:

functions.php

function wpb_change_search_url() {
    if ( is_search() && ! empty( $_GET['s'] ) ) {
        wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
        exit();
    }   
}

add_action( 'template_redirect', 'wpb_change_search_url' );

.htaccess

# Change WordPress search URL
RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
RewriteRule ^$ /search/%1/? [NC,R,L]

但是那两个重定向页面并使我失去了 post_type 过滤器。

知道我是怎么做到的吗?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:
    function foo_modify_query_order( $query ) {
    
        if( is_admin() )
            return;
    
        if( is_search() && $query->is_main_query() ) {
            $post_type = array('resource');
            $query->set('post_type', $post_type);
            $query->set( 'orderby', 'date' );
            $query->set( 'order', 'DESC' );
            $query->set('posts_per_page', -1);
        }
    }
    add_action( 'pre_get_posts', 'foo_modify_query_order' );
    

    此查询将从帖子类型“博客”和“帖子”中过滤帖子。

    【讨论】:

    • 工作正常!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2012-08-25
    • 2014-02-22
    • 2011-06-20
    • 1970-01-01
    • 2012-01-22
    相关资源
    最近更新 更多