如果我去
wp-content/themes/theme-name/woocommerce/single-product/meta.php
然后我看到这个代码:-
<?php
/**
* Single Product Meta
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 1.6.4
*/
if ( ! defined( \'ABSPATH\' ) ) exit; // Exit if accessed directly
global $post, $product;
?>
<div class="product_meta">
<?php echo $product->get_categories( \', \', \' <span class="posted_in">\'.__(\'Category:\', GETTEXT_DOMAIN).\' \', \'.</span>\'); ?>
<?php echo $product->get_tags( \', \', \' <span class="tagged_as">\'.__(\'Tags:\', GETTEXT_DOMAIN).\' \', \'.</span>\'); ?>
</div>
需要进行哪些修改以使其不显示类别,具有slug,
certain-category-slug
?
我可以使用以下方法:-
get_categories( array( \'exclude\' => \'certain-category-slug\' ) )
但我相信WooCommerce
$product->get_categories
与WordPress API不同
get_categories
因为他们的论点不同。
最合适的回答,由SO网友:Nicolai Grossherr 整理而成
你说得对woocommerce: get_categories() 不同于wordpress: get_categories(), woocommerce函数使用get_the_term_list(), 因此,没有办法排除类别,这同样适用于get_the_category_list(). 您可以使用wp_list_categories() 对于这个,特别是看看这个example 从codex页面:
Display Categories Assigned to a Post
显示分配给按父子类别关系排序的帖子的类别(或来自其他分类法的术语)。类似于函数get\\u the\\u category\\u list(),它按名称对类别进行排序。此示例必须在循环内使用。
Code:
$taxonomy = \'category\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
$terms = rtrim( trim( str_replace( \'<br />\', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
这不是一个完整的解决方案,您必须在此基础上构造一个函数,并使用新函数而不是内部的默认函数
meta.php
.