返回

如何在 WordPress 中获取当前分类法项目的 ID?

php

如何在 WordPress 中获取当前分类法项目的 ID

介绍

WordPress 的分类法是一种强大的工具,用于对内容进行分类和组织。每个分类法项目都有一个唯一的 ID,用于识别其在数据库中的位置。在某些情况下,需要获取当前分类法项目的 ID,例如,在主题中创建自定义查询时。本教程将详细介绍如何使用 get_queried_object() 函数来实现这一目的。

获取分类法项目 ID

1. 创建 taxonomy.php 文件

在主题文件夹中创建一个名为 taxonomy.php 的文件,用于放置获取分类法项目 ID 的代码。

2. 使用 get_queried_object() 函数

使用 get_queried_object() 函数获取当前分类法项目对象,该对象包含其 ID 等相关信息。

$term = get_queried_object();

3. 检查对象类型

检查获取的对象是否为 WP_Term 实例,如果不是,则无法获取分类法项目 ID。

if ( $term instanceof WP_Term ) {
    // ...
}

4. 获取分类法项目 ID

如果对象为 WP_Term 实例,则可以通过访问其 term_id 属性来获取分类法项目 ID。

$term_id = $term->term_id;

5. 输出分类法项目 ID

可以使用 echo 语句或其他输出函数将分类法项目 ID 输出到页面上。

echo '分类法项目 ID:' . $term_id;

示例代码

以下示例代码展示了如何在 taxonomy.php 文件中使用 get_queried_object() 函数获取当前分类法项目的 ID:

<?php
/*
Template Name: Taxonomy
*/

get_header();

$term = get_queried_object();

if ( $term instanceof WP_Term ) {
    echo '<h1>' . $term->name . '</h1>';
    echo '<p>分类法项目 ID:' . $term->term_id . '</p>';
}

get_footer();

注意事项

对于自定义分类法,需要修改代码以匹配分类法名称,例如,对于名称为 "book_category" 的分类法,需修改为:

if ( $term instanceof WP_Term && $term->taxonomy === 'book_category' ) {
    // ...
}

结论

使用 get_queried_object() 函数可以轻松获取当前分类法项目的 ID。此方法对于自定义查询或其他需要分类法项目 ID 的情况非常有用。

常见问题解答

1. 无法获取分类法项目 ID 怎么办?

确保当前处于分类法存档页面,并且已正确创建 taxonomy.php 文件。

2. 自定义分类法名称不同,如何修改代码?

将代码中 "book_category" 替换为自定义分类法的名称即可。

3. 如何在其他模板中使用此方法?

get_queried_object() 函数添加到相应的模板文件中即可。

4. 此方法是否兼容所有 WordPress 版本?

get_queried_object() 函数自 WordPress 2.5 起引入,因此兼容所有现代版本。

5. 有没有其他获取分类法项目 ID 的方法?

其他方法包括使用 get_term_by() 函数或直接从数据库中查询。