wordpress中get_the_category与get_the_terms的区别是什么?

发布于 2022-09-04 20:04:03 字数 383 浏览 24 评论 0

get_the_category和get_the_terms貌似都是用来获取分类信息的,
前者使用方法简单,不带参数,后者使用方法

<?php get_the_terms( $id, $taxonomy ); ?> 

例如:woocommerce中,获取当前产品页面的分类信息,前者居然无效,后者要使用

<?php get_the_terms( $id, 'product_cat'); 

为什么要填写'product_cat',我怎么知道这里为什么必须写product_cat,而不是product_cat1,从何得知?
请大神讲解一下什么时候用前者?什么时候用后者,两者的具体区别是什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

苦行僧 2022-09-11 20:04:03

get_the_category 调用的就是 get_the_terms函数,只不过他的第二个参数带的是默认的 category

https://developer.wordpress.org/reference/functions/get_the_terms/
<?php get_the_terms( $id, 'category'); ?>
指尖微凉心微凉 2022-09-11 20:04:03

woocommerce/includes/class-wc-post-types.php 里面注册了一个分类 商城系统应该是读取的这个

<?php
/*最新版76行起*/
        register_taxonomy( 'product_cat',
            apply_filters( 'woocommerce_taxonomy_objects_product_cat', array( 'product' ) ),
            apply_filters( 'woocommerce_taxonomy_args_product_cat', array(
                'hierarchical'          => true,
                'update_count_callback' => '_wc_term_recount',
                'label'                 => __( 'Categories', 'woocommerce' ),
                'labels' => array(
                        'name'              => __( 'Product categories', 'woocommerce' ),
                        'singular_name'     => __( 'Category', 'woocommerce' ),
                        'menu_name'         => _x( 'Categories', 'Admin menu name', 'woocommerce' ),
                        'search_items'      => __( 'Search categories', 'woocommerce' ),
                        'all_items'         => __( 'All categories', 'woocommerce' ),
                        'parent_item'       => __( 'Parent category', 'woocommerce' ),
                        'parent_item_colon' => __( 'Parent category:', 'woocommerce' ),
                        'edit_item'         => __( 'Edit category', 'woocommerce' ),
                        'update_item'       => __( 'Update category', 'woocommerce' ),
                        'add_new_item'      => __( 'Add new category', 'woocommerce' ),
                        'new_item_name'     => __( 'New category name', 'woocommerce' ),
                        'not_found'         => __( 'No categories found', 'woocommerce' ),
                    ),
                'show_ui'               => true,
                'query_var'             => true,
                'capabilities'          => array(
                    'manage_terms' => 'manage_product_terms',
                    'edit_terms'   => 'edit_product_terms',
                    'delete_terms' => 'delete_product_terms',
                    'assign_terms' => 'assign_product_terms',
                ),
                'rewrite'          => array(
                    'slug'         => $permalinks['category_rewrite_slug'],
                    'with_front'   => false,
                    'hierarchical' => true,
                ),
            ) )
        );
?>
浅黛梨妆こ 2022-09-11 20:04:03

get_the_category是调用wordpress自定义的文章分类

get_the_terms是调用用户开发时定义的分类类型,也可以调用wordpress自定义的

酒中人 2022-09-11 20:04:03

在 WordPress 中数据类型 terms 包括:Category(分类) post_tag(标签) post_format(文章类型)以及其他用户自定义的数据类型。
get_the_category() 只是获取 terms 里的 Category 也就是分类
get_the_terms() 可以获取所有的 terms

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文