首页 > CMS教程 > &#&按 > WordPress术语元和WP_TERM简介

WordPress术语元和WP_TERM简介

Jennifer Aniston
发布: 2025-02-15 09:45:11
原创
138 人浏览过

WordPress术语元和WP_TERM简介

钥匙要点

  • >由于WordPress 4.4,术语现在为对象,使添加,删除和更新元数据更容易。在此之前,将元数据保存为分类法是一个复杂的过程,它需要保存元数据作为WP_OPTIONS表中的字段。
  • 使用术语元,add_term_meta,update_term_meta和delete_term_meta函数使用。这些功能与新的UI元素相结合,可以为术语保存和更新新的元数据。
  • 术语元数据可用于扩展术语,提供独特的功能。示例包括将横幅图像添加到术语的顶部或提供元数据以有条件显示的术语不同,例如根据显示的术语加载新的模板文件。
  • > WordPress中的WP_TERM类是一个术语的面向对象表示。它提供了检索和操纵术语数据的方法,包括术语元数据。该类可用于通过创建特定术语的类实例来处理术语元,然后使用类提供的方法来检索,添加,更新或删除该术语的元数据。
  • 在WordPress中,您可以轻松地将元数据保存在帖子,页面和其他自定义内容类型中,但是保存元数据供您的分类法使用,曾经是一个过于复杂的过程(我什至在这里写了上一篇文章!)。

要获得所有工作,您需要将任期元数据作为每个数据的WP_OPTIONS表中的字段保存为字段,这意味着您可能有数百个,如果不是数千个额外的条目,则术语或仅几个定制分类法。

但是,由于WordPress 4.4及以后,术语现在为对象,与帖子,页面和自定义内容类型相同。此更改使添加,删除和更新您的元数据变得更加容易。

>

带有术语meta

的背景故事

自从WordPress 2.8返回以来,社区一直在推动一种简单的方法来控制术语元数据。这是一个缓慢的过程,但最终从头开始重新设计了术语以使用班级结构。这加上WordPress 4.4的一些不同的更改意味着分类法(例如“标签”,“类别”或“自定义”)中的术语现在可以轻松地分配给他们。

元数据操纵旧方法

在WordPress 4.4之前,没有明确的方法可以轻松地为术语项目保存元数据,这是对构造方式的术语的固有限制。如果您要扩展分类法或条款,则必须将数据直接保存为使用Update_option的站点选项。 这不是理想的(因为它使选项表杂乱无章)。

>

>我已经写过有关扩展分类法的文章,但是,它的基本知识是在您准备保存元数据时,您会称呼看起来像这样的功能:

>
//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');
登录后复制
登录后复制
在上面的示例中,我们执行附加到Create_Category Hook(创建新类别术语时触发)的函数。这将寻找我们的价值,在消毒后将其作为选择。虽然这起作用并不是很漂亮。

添加,更新和删除术语元

要使用术语元,您将使用add_term_meta,update_term_meta和delete_term_meta函数。这些功能与新的UI元素结合使用,可以让您为您的条款保存和更新新的元数据。

添加术语元

添加术语的元数据涉及add_term_meta函数。您需要使用可选的第四个参数指定三个参数。

    $ term_id - 您要保存此元数据的术语ID
  • $ META_KEY - 元数据的关键名称。这就是您将如何引用数据
  • >
  • $ meta_value - 数据本身(记住要消毒)
  • $ unique(可选) - 如果元数据键应该是唯一的。默认情况下,这将设置为false,意味着,如果另一个键具有相同的名称,则该功能将覆盖它。将其设置为真实,以确保独特性。
  • 作为一个例子,想象一下,对于我们的类别分类法中的每个术语,我们希望根据将多少帖子分配给此类别的新元数据。使用WordPress 4.4,我们可以循环循环所有术语,并保存此新元数据(供以后在我们的主题或插件中使用)。

读取术语meta

function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');
登录后复制
登录后复制
>我们可以使用get_term_meta函数读取保存的术语元。该函数的工作方式与用于从帖子中获取元数据的get_post_meta函数类似。 要使用此功能以指定一个强制性参数,并使用两个可选参数。

$ term_id - 从

>获取元数据的术语ID

$键(可选) - 您要返回的单个指定密钥。如果未指定,则将返回所有元数据。
  • $ single(可选) - 如果将返回单个值或键或值对。默认为单个值。
  • >让我们看一下您可能会发现这有用的另一种情况。
  • 考虑一种我们已经在类别分类法中为我们的每个条款节省的元项的情况。此保存的数据包含在查看术语时应显示的图像的URL。我们希望将此图像显示为术语描述或标题的横幅,而在我们的帖子列表之上。

现在,在我们的类别中,或其他儿童主题模板文件,我们可以修改显示我们的术语数据的功能。

在我的情况下,我正在使用二十四个问题进行编辑类别。

//given a term, collect its saved image to be displayed
function display_term_meta_image($term_id, $term_taxonomy){

    //get supplied term
    $term = get_term($term_id, $term_taxonomy); 
    if($term){

        $term_image_id = get_term_meta($term_id, 'term_image_id', true);
        if($term_image_id){
            //get the medium image size for display
            $term_image = wp_get_attachment_image_src($term_image_id, 'medium', false);
            echo '<img . $term_image[0] . '" title="' . $term->name . ' image"/>';
        }  
    }
}
登录后复制
这将在这样的描述下显示我们的照片:

>WordPress术语元和WP_TERM简介

删除术语元

>我们可以删除术语元数据,与帖子相同。当我们使用delete_term_meta函数时,如果需要,我们需要提供两个强制性参数。

    $ term_id - 术语的ID。
  • $ META_KEY - 将从该学期删除的元密钥。
  • > $ META_VALUE(可选) - 仅在值匹配此值时才删除元数据。当您仅在匹配设置值时才要删除此数据时,请使用此此操作。
  • >
  • 再次让我们看一下您可以使用此情况的情况。想象一下您通过一个大型项目的一半,您已经将几个元数据保存到了每个类别术语中。您已经发现其中一些数据不再需要,因此您可能应该清除它,以免它弄乱您的数据库。

此功能将通过并删除我们在$ wasse_term_keys变量中未指定的任何其他元数据,从而减少了数据库中浪费的空间(对于我们有数十个元数据条目时,我们不再需要)。 > 与WordPress 4.3及以上的
//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');
登录后复制
登录后复制
向后兼容

>您真的很想向前推进这些新的元功能,但想掩盖自己的旧版本,则可以创建一些有条件的功能以确保一切都可以。

我们首先调用函数_EXISTS,以确保定义新的add_term_meta函数。这仅适用于WordPress 4.4和更新。如果我们有支持,我们会使用简单的add_term_meta函数将元数据分配给我们的术语。

>如果我们没有支持,我们会抓住术语对象本身(通过术语ID中的术语),然后我们提取$ TERM_TAXONOMY数据并使用它来构建我们的最终键值。由于我们将保存到选项表中,我们需要确保密钥是唯一的,因此我们通过将分类法名称,术语ID和术语键添加到一个变量中来做到这一点。 我们必须确保密钥的长度不超过64个字符,并将其修剪成。完成所有这些操作后,我们可以调用我们的add_option函数以节省我们的价值。> 如您所见,这会变得很长,但是您确实会增加灵活性以支持较旧和较新的WordPress版本。
function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');
登录后复制
登录后复制

将其全部包装

使用这些新的元功能应使您更轻松地扩展您的术语以提供独特的功能。例如,您可能需要在术语的顶部添加横幅图像或提供元数据,以便您可以有条件地以不同的方式显示您的条款(例如,根据显示的术语加载新的模板文件)。

>具有新术语元函数的灵活性和易度性,您可以立即开始在新项目中实现此功能!

>

经常询问有关WordPress术语Meta

的问题(常见问题解答)

什么是WordPress术语META?

WordPress项META是一项功能,它允许您将自定义元数据存储在WordPress站点中。此元数据可以是您想与该术语相关联的其他描述,图像,颜色或任何其他信息。这是一个功能强大的工具,可以增强网站的功能和用户体验。

如何在wordpress中添加术语元?

​​

在WordPress中添加术语META,您可以使用add_term_meta( ) 功能。此功能采用三个必需的参数:术语ID,元密钥(元字段的名称)和元值。可选地,您还可以指定元密钥是否应该是唯一的。

>

>我如何在WordPress中检索术语元数据?

>

>您可以使用get_term_meta()function在WordPress中检索术语元数据。此功能需要您要检索的元字段的术语ID和键。它返回指定术语的元字段的值。

>我可以在wordpress中更新术语元吗?

是的,您可以使用update_term_meta()function在WordPress中更新术语Meta。此功能需要术语ID,元密钥和新的元值。如果该术语不存在元密钥,则将添加。

>

>如何在WordPress中删除术语META?

>您可以使用DELETE_TERM_META()函数在WordPress中删除WordPress中的术语Meta 。此功能需要术语ID和META键。它删除了给定术语的指定元字段。

> wordpress中的WP_TERM类是什么?

> WordPress中的WP_TERM类是一个术语的面向对象的表示。它提供了检索和操纵术语数据的方法,包括术语meta。

>我如何使用WP_TERM类使用术语元?通过为特定术语创建类的实例,然后使用类提供的方法来检索,添加,更新或删除该术语的元数据。

>在WordPress?

> WordPress中的术语元素可用于多种目的,例如将其他信息添加到类别或标签中,为术语创建自定义字段,增强搜索功能等等。我可以使用WordPress中的自定义分类法的术语元素吗?术语元函数可与任何分类法(包括自定义的分类法)一起使用。

>是否有任何可以帮助我在WordPress中管理术语元的插件?

是的,有几个可用的插件可以为您提供帮助在WordPress中管理术语元。这些插件提供了添加,更新和删除术语元的用户友好接口,这使得那些不满意编码的人更容易。

>

以上是WordPress术语元和WP_TERM简介的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板