此代码在每页的<body>
中添加类别和标记名称。
不幸的是,此代码仅适用于普通页面/帖子,而不适用于自定义后期类型。
我必须添加什么才能使其适用于自定义帖子类型?
<?php
/**
* categorys and tags in body
*
* @param string $classes
* @return array|string
*/
function add_categories_and_tags($classes = '')
{
if (is_page()) {
// categories
$categories = get_the_category();
if (!empty($categories)) {
foreach ($categories as $category) {
$classes[] = 'category-' . $category->slug;
}
}
// tags
$tags = get_the_tags();
if (!empty($tags)) {
foreach ($tags as $tag) {
$classes[] = 'tag-' . $tag->slug;
}
}
}
return $classes;
}
add_filter('body_class', 'add_categories_and_tags');
function getTagList($classes = '')
{
$tags = get_the_tags($post->ID);
$tagOutput = [];
if (!empty($tags)) {
array_push($tagOutput, '<ul class="tag-list ' . $classes . '">');
foreach ($tags as $tag) {
array_push($tagOutput, '<li>' . $tag->name . '</li>');
}
array_push($tagOutput, '</ul>');
}
return implode('', $tagOutput);
}
add_shortcode('tagsList', 'getTagList');
提前谢谢!
答案 0 :(得分:0)
if( is_page() || is_single() || is_post_type('post_type') ) {
...
将完成这项工作,但不够具体
答案 1 :(得分:0)
if (is_page())
检查就是这样 - 它检查您是否正在查看页面,因此它永远不会在自定义帖子上运行。只需删除该检查,它就会在每个页面,帖子等上运行。