Wordpress function.php为自定义后期类型添加代码

时间:2018-04-11 08:29:10

标签: php wordpress wordpress-theming custom-wordpress-pages

此代码在每页的<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');

提前谢谢!

2 个答案:

答案 0 :(得分:0)

if( is_page() || is_single() || is_post_type('post_type') ) {

...

将完成这项工作,但不够具体

答案 1 :(得分:0)

if (is_page())检查就是这样 - 它检查您是否正在查看页面,因此它永远不会在自定义帖子上运行。只需删除该检查,它就会在每个页面,帖子等上运行。