如果我使用WP_Query类,例如:
$query = new WP_Query( 'category_name=staff,news' );
我将使用类别slug获取具有这些类别的帖子,但是如何获得类别名称以术语开头的帖子,例如:
$query = new WP_Query( 'category_name=s%' );
我希望我能很好地解释我的问题。感谢
答案 0 :(得分:0)
您可以在主题functions.php中创建一个函数,如:
<?php
/**
* @ $taxonomy = the taxonomy name
* @ $search = the string you are searching
* @ return array of term names
*/
function getDesiredTerms($taxonomy, $search) {
$result = get_terms(
$taxonomy,
array(
'hide_empty' => false, // get them all
'fields' => 'names', // get only the term names
'name__like' => $search // Note: This was changed in WordPress 3.7, when previously name__like matched terms that begin with the string.
)
);
return $result;
}
请注意您正在使用的Wordpress版本。
http://codex.wordpress.org/Function_Reference/get_terms在食典委的更多细节。 寻找'name__like'参数
答案 1 :(得分:0)
万一有人偶然发现,我需要进行搜索,其中包括功能get_terms中的模糊匹配。我最初使用name__like
来帮助优化搜索结果,但最终获得了所有术语,并使用similar_text()
来比较搜索输入与术语名称。
下面是我最终使用的功能。希望它可以帮助某人:
$search_text = "WHATEVER YOUR SEARCH INPUT IS";
$args = array(
'taxonomy' => array( 'product_cat' ), // taxonomy name
'orderby' => 'id',
'order' => 'ASC',
'hide_empty' => false,
'fields' => 'all'
//'name__like' => $search_text //I TOOK THIS PART OUT
);
$terms = get_terms( $args );
//FILTER FUZZY MATCHING
foreach($terms as $term) {
$item = similar_text($search_text, $term->name, $percentage);
if($percentage >= 50) :
echo $term->name . ' - ' . $percentage . '<br />';
endif;
}
您可以修改百分比阈值以产生所需的结果。就我而言,这对我来说非常有用。在某些情况下,它对其他人可能效果不佳。