使用函数将分类添加到自定义帖子类型的问题



使用 WordPress 3.7.1 和 PHP 5.4.12,我正在尝试将自定义帖子类型和分类添加到我的主题中,到目前为止,自定义帖子类型方法有效,但分类法没有添加到管理仪表板。

这是我的代码:

<?php
 function add_post_type($name, $args = array()) {
    add_action('init', function() use($name, $args) {
            $upper = ucwords($name);
            $name = strtolower(str_replace(' ','_',$name));
            $args = array_merge(
            array(
            'public'=> true,
            'label' => "All $upper" . 's',
            'labels' => array('add_new_item' => "Add New $upper"),
            'support' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments')
            ),
            $args
            );
            register_post_type('$name', $args);
        });
}
function add_taxonomy($name, $post_type, $args = array()) {
    $name = strtolower($name);
    add_action('init', function() use($name, $post_type, $args) {
            $args = array_merge(
                array(
                'label' => ucwords($name),
                ),
                $args
            );
                register_taxonomy($name, $post_type, $args);
    }); 
}
add_post_type('book', array(
            'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments')
));
add_taxonomy('fun', 'book');
?>

你能告诉我我做错了哪一部分吗?

$name变量没有解析,把它放在双引号之间:

register_post_type( "$name", $args );

编辑

add_action( 'init', 'so19966809_init' );
function so19966809_init()
{
    register_post_type( 'book', array(
        'public'=> true,
        'label' => 'All Books',
        'labels' => array( 'add_new_item' => 'Add New Book' ),
        'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
        'taxonomies' => array( 'fun' )
    ) );
    register_taxonomy( 'fun', 'book', array(
        'label' => 'Fun',
    ) );
}

最新更新