此代码在每个页面的<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');
先感谢你!
#1
if( is_page() || is_single() || is_post_type('post_type') ) {
…
会完成这项工作, 但还不够具体
#2
if(is_page())检查仅仅是-它检查你是否正在查看页面, 因此它永远不会在自定义帖子上运行。只需删除该支票, 它将在所有页面, 帖子等上运行。
评论前必须登录!
注册