If search matches taxonomy

时间:2012-02-05 作者:Carpy

如果搜索输入与分类名称完全匹配,是否可以将用户重定向到分类页面?

例如,我有一个称为“参与者”的分类法。如果有人在搜索字段中输入“Tom Hanks”,而不是进入常规搜索页面,则会将他们重定向到Tom Hanks的分类页面。

2 个回复
最合适的回答,由SO网友:Bryan Monroe 整理而成

我只想在一个分类法中匹配标记,所以我能够将代码简化如下。我的分类法是“post\\u标记”——只需根据需要交换您的标记即可。

$i = 0;
$search_query = get_search_query();

$term = get_term_by( \'name\', $search_query, \'post_tag\' );
if( $term !== false ) {
    $i++;
    $single_result = $term;
}    

if( $i == 1 && is_object( $single_result ) ) {
    $single_found = true;
} else {
$single_found = false;
unset( $single_result );
}

if( $single_found ) {
    wp_redirect( get_bloginfo( \'url\' ) . \'/\' . $single_result->slug );
}

SO网友:mor7ifer

沿着这条路走怎么样?

$tax_args = array(
    \'public\' => true
);
$taxonomies = get_taxonomies( $tax_args, \'names\', \'or\' );

$i = 0;
foreach( $taxonomies as $tax ) {
    $term = get_term_by( \'name\', $your_search_term, $taxonomy );
    if( $term !== false ) {
        $i++;
        $single_result = $term;
    }
}

if( $i === 1 && is_object( $single_result ) ) {
    $single_found = true;
} else {
    $single_found = false;
    unset( $single_result );
}

if( $single_found ) {
    wp_redirect( get_bloginfo( \'url\' ) . \'/\' . $single_result->taxonomy . \'/\' . $single_result->slug );
}
文档:get_taxonomies(), get_term_by(), wp_redirect()

结束

相关推荐

Search by meta_query

我正在建立一个具有事件功能的Wordpress网站。“事件”页面是使用自定义帖子类型创建的。我想让人们能够按日期搜索/过滤事件。例如,他们可以搜索2011年12月2日至2012年3月1日之间发生的所有事件,并从日期介于12月和3月(即12月、1月、2月和3月)之间的事件中获取结果。我想知道最好的方法。有什么想法吗?通过查看此页面上的“按日期搜索事件”功能,您可以看到我想要实现的一个示例http://www.londontown.com/events以下是开始和结束日期元框的代码:$prefix = \'g