我正在处理一个函数,我只想输出一个链接到特定术语的按钮。我用过get_the_terms
我已经成功地让它工作了,但我一直在努力get_term
我没有运气。我想让短代码看起来像这样[see_all_products category="bakery"]
并输出一个链接到它的按钮。
这是我目前的职能:
function product_category_button($atts) {
extract(shortcode_atts(array(
\'category\' => \'\',
), $atts));
// if( $category ) :
// Vars
$taxonomy = \'product_categories\';
$term = get_term( $category, $taxonomy ); //$post->ID
$cat = $term->name;
$parent = $term->parent;
var_dump($cat);
if ($parent == NULL) :
// Vars
$link = get_term_link( $term->slug, $taxonomy);
$html_out = \'\';
$html_out .= \'<a class="x-btn x-btn-primary x-btn-global hvr-bounce-to-bottom" href="\' . $link . \'">\' . \'See All Products\' . $cat . \'</a>\';
endif;
return $html_out;
// endif;
}
add_shortcode( \'see_all_products\', \'product_category_button\' );
现在,
$link
给我这个错误“可捕获的致命错误:类WP\\u error的对象无法转换为字符串”,并且
$cat
退货
NULL
在
var_dump
.
不确定这是否会影响它,但$parent
这里的东西只是为了得到父术语。
SO网友:Johansson
你似乎想用鼻涕虫或名字来称呼它。get_term()
将通过其id获取所有术语的数据。在这种情况下,使用get_term_by()
而是:
function product_category_button($atts) {
extract(shortcode_atts(array(
\'category\' => \'\',
), $atts));
// if( $category ) :
// Vars
$taxonomy = \'product_categories\';
// Use \'name\' instead of \'slug\' if you want to get the term by it\'s name
$term = get_term_by( \'slug\' , $category, $taxonomy ); //$post->ID
$cat = $term->name;
$parent = $term->parent;
var_dump($cat);
if ($parent == NULL) :
// Vars
$link = get_term_link( $term->slug, $taxonomy);
$html_out = \'\';
$html_out .= \'<a class="x-btn x-btn-primary x-btn-global hvr-bounce-to-bottom" href="\' . $link . \'">\' . \'See All Products\' . $cat . \'</a>\';
endif;
return $html_out;
// endif;
}
add_shortcode( \'see_all_products\', \'product_category_button\' );
要进一步阅读,请查看
codex.