外贸建站资讯分享

WordPress自定义taxonomy调用php方法代码收集

阅读数:5448 时间:26/05/2024 来源:WordPrses建站 标签:

您所在的位置:

在WordPress中,自定义taxonomy(分类法)是一个强大的工具,可以帮助你更好地组织和管理内容。通过使用PHP代码,我们可以轻松地创建和管理自定义taxonomy,使网站内容更加丰富且易于分类。本文将详细介绍如何在WordPress中创建和调用自定义taxonomy,并分享一些实用的PHP代码片段。

1. 什么是自定义taxonomy?

自定义taxonomy是WordPress中的一种内容分类方法,允许你创建自定义的分类和标签。它可以帮助你更好地组织内容,特别是在你需要对不同类型的内容进行细分时。例如,你可以为一本书创建一个名为“流派”的自定义分类法,并为不同的书籍分配不同的流派。

2. 创建自定义taxonomy

首先,让我们来看一下如何创建自定义taxonomy。你可以在主题的functions.php文件中添加以下代码:


function create_book_taxonomy() {
$labels = array(
'name' => _x('Genres', 'taxonomy general name'),
'singular_name' => _x('Genre', 'taxonomy singular name'),
'search_items' => __('Search Genres'),
'all_items' => __('All Genres'),
'parent_item' => __('Parent Genre'),
'parent_item_colon' => __('Parent Genre:'),
'edit_item' => __('Edit Genre'),
'update_item' => __('Update Genre'),
'add_new_item' => __('Add New Genre'),
'new_item_name' => __('New Genre Name'),
'menu_name' => __('Genre'),
);

register_taxonomy('genre', array('book'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'genre'),
));
}
add_action('init', 'create_book_taxonomy', 0);


3. 将taxonomy添加到自定义文章类型

在创建了自定义taxonomy之后,你需要将其添加到自定义文章类型中。假设你已经有一个名为“book”的自定义文章类型,可以使用以下代码将“genre”taxonomy添加到该文章类型:

function create_book_post_type() {
register_post_type('book',
array(
'labels' => array(
'name' => __('Books'),
'singular_name' => __('Book')
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'books'),
'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'comments'),
'taxonomies' => array('genre') // 添加自定义taxonomy
)
);
}
add_action('init', 'create_book_post_type');

 

4. 显示自定义taxonomy

在前端页面显示自定义taxonomy可以使用户更容易地浏览和筛选内容。以下是一些实用的代码片段,帮助你在WordPress模板中显示自定义taxonomy。

4.1 显示taxonomy列表

你可以在单个文章页面中显示该文章所属的所有taxonomy条目。添加以下代码到你的主题模板文件中:

$terms = get_the_terms($post->ID, 'genre');
if ($terms && !is_wp_error($terms)) {
$term_list = array();
foreach ($terms as $term) {
$term_list[] = $term->name;
}
echo join(", ", $term_list);
}

 

4.2 创建taxonomy归档页面

要为自定义taxonomy创建归档页面,你需要在主题文件夹中创建一个名为taxonomy-genre.php的文件。这个文件将用于显示特定taxonomy条目的所有文章。

get_header();
if (have_posts()) :
while (have_posts()) : the_post();
// 显示文章内容
the_title('<h2>', '</h2>');
the_content();
endwhile;
else :
echo '<p>No content found</p>';
endif;
get_footer();

 

5. 管理自定义taxonomy

通过WordPress管理后台,你可以方便地管理自定义taxonomy。以下是一些实用的PHP代码片段,帮助你更好地管理和优化自定义taxonomy。

5.1 显示自定义taxonomy的文章数量

在管理界面中显示每个taxonomy条目的文章数量,可以帮助你更好地了解内容的分布情况。

 
function show_taxonomy_post_count($term, $taxonomy) {
$term->count = $term->count . ' (' . $term->taxonomy . ')';
return $term;
}
add_filter('get_terms', 'show_taxonomy_post_count', 10, 2);

5.2 自定义taxonomy的排序

你可以自定义taxonomy条目的排序规则,以下代码将taxonomy按名称排序:

 function sort_taxonomy_by_name($query) {
if (!is_admin() && $query->is_main_query() && is_tax('genre')) {
$query->set('orderby', 'name');
$query->set('order', 'ASC');
}
}
add_action('pre_get_posts', 'sort_taxonomy_by_name');

结论

通过使用以上PHP代码片段,你可以轻松地在WordPress中创建和管理自定义taxonomy。这不仅可以帮助你更好地组织和分类内容,还可以提升用户体验和SEO效果。希望这些代码和方法对你有所帮助。


常见问题解答

1. 如何创建自定义taxonomy? 使用register_taxonomy函数在functions.php文件中创建自定义taxonomy。

2. 如何将自定义taxonomy添加到自定义文章类型? 在注册自定义文章类型时,通过taxonomies参数将自定义taxonomy添加到文章类型。

3. 如何在前端页面显示自定义taxonomy? 使用get_the_terms函数获取并显示文章所属的所有taxonomy条目。

4. 如何为自定义taxonomy创建归档页面? 在主题文件夹中创建名为taxonomy-genre.php的文件,用于显示特定taxonomy条目的所有文章。

5. 如何管理自定义taxonomy的排序? 通过pre_get_posts钩子函数自定义taxonomy条目的排序规则。


关闭

网站需求

    您的公司*

    您的姓名*

    您的手机*

    您的需求