按名称搜索自定义分类术语

时间:2017-02-16 作者:DIM3NSION

我有一个自定义的分类法,叫做相册。

我需要能够文本搜索分类术语标题,显然这不是默认的WP搜索。只是想知道我该如何最好地解决这个问题?

假设有一张名为“足球热门歌曲”的专辑,

我开始键入foot并搜索,我只需要它显示专辑标题和永久链接。

谢谢

2 个回复
最合适的回答,由SO网友:TrubinE 整理而成
// We get a list taxonomies on the search box
function get_tax_by_search($search_text){

$args = array(
    \'taxonomy\'      => array( \'my_tax\' ), // taxonomy name
    \'orderby\'       => \'id\', 
    \'order\'         => \'ASC\',
    \'hide_empty\'    => true,
    \'fields\'        => \'all\',
    \'name__like\'    => $search_text
); 

$terms = get_terms( $args );

 $count = count($terms);
 if($count > 0){
     echo "<ul>";
     foreach ($terms as $term) {
       echo "<li><a href=\'".get_term_link( $term )."\'>".$term->name."</a></li>";

     }
     echo "</ul>";
 }

}

// sample
get_tax_by_search(\'Foo\');
SO网友:nibnut

所以你可以通过分类标题来搜索帖子——自定义或其他。答案将出现在“tax_query“WP\\U查询的一部分。下面是一个根据您的需要改编的Codex示例:

<ul>
<?php

global $post;
$album_title = $_GET[\'album-title\'];
$args = array(
    \'post_type\' => \'post\',
    \'posts_per_page\' => 5,
    \'tax_query\' => array( // NOTE: array of arrays!
        array(
            \'taxonomy\' => \'albums\',
            \'field\'    => \'name\',
            \'terms\'    => $album_title
        )
    )
);

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
<?php endforeach; 
wp_reset_postdata();?>

</ul>

UPDATE

我还没有对此进行测试,但从理论上讲,我认为它可以工作。要匹配任何包含“foot”的内容:

<ul>
<?php

global $post;
$album_title = $_GET[\'album-title\']; // say the user entered \'foot\'
$args = array(
    \'post_type\' => \'post\',
    \'posts_per_page\' => 5,
    \'tax_query\' => array( // NOTE: array of arrays!
        array(
            \'taxonomy\' => \'albums\',
            \'field\'    => \'name\',
            \'terms\'    => $album_title,
            \'operator\'    => \'LIKE\'
        )
    )
);

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
<?php endforeach; 
wp_reset_postdata();?>

</ul>
希望有帮助!

相关推荐

Search function not working

我正在为我的woocommerce商店使用SSHOP主题。当我从主页搜索任何内容时,搜索url工作正常,下面的搜索permalink显示。https://techcart.pk/?s=abc但当我从产品页面或分类页面搜索时,搜索结果并没有找到任何内容,下面的permalink显示。https://techcart.pk/product/8mm-led-10pcs/?s=abc我想重写上面的永久链接,如下所示https://techcart.pk/?s=abc请帮忙