0

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');
?>

私が間違っている部分を教えてください。

4

1 に答える 1

0

$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',
    ) );
}
于 2013-11-14T00:29:54.740 に答える