1

WordPress にカスタム投稿タイプを追加しようとしています。カスタム投稿タイプを次のコードで登録して、左側のメニュー バーに表示されるようにします。

add_action( 'init', 'add_member');

function add_member() {

$args = array(
    'label' => __('Members'),
    'singular_label' => __('Member'),
    'public' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarhical' => false,
    'rewrite' => true,
    'supports' => array('title', 'editor', 'thumbnail')
);

register_post_type( 'member', $args );

}

しかし問題は、カスタム メタ ボックスを追加しようとすると、サイトが壊れてしまうことです。

add_action("admin_init", "admin_init");

function admin_init() {

add_meta_box("memberInfo-meta", "Member Options", "meta_options", "member", "side", "low");

}

add_action('save_post', 'save_member');

function meta_options() {

global $post;
$custom = get_post_custom($post->ID);
$member = $custom["member"][0];

}

<label>Member:</label><input name="member" value="<?php echo $member; ?>" />

function save_member() {

global $post;
update_post_meta( $post->ID, "member", $_POST["member"] );

}

私は何を間違っていますか?

ありがとう。

4

3 に答える 3

1

どのように/何を達成する必要があるかはわかりませんが、優れた機能を備えた「custom-post-type-ui」と呼ばれる、非常に優れた、小さくてすっきりとしたプラグインがあります。昔、私はあなたと同じように苦労していましたが、このプラグインは私の人生を楽にしてくれました。ここを参照してください。

于 2012-06-27T11:55:58.613 に答える
1

コードをざっと見ただけですが。「admin_init」という関数をフック admin_init にフックしようとしています。これは明らかにうまくいきません。関数「admin_init」を別のものに変更してみてください。

wp_config で DEBUG を有効にする (または error_log をチェックする) ことで、何が壊れたのかを実際に突き止めることができます。

于 2012-06-27T14:05:35.483 に答える
0

関数を「add_meta_boxes」アクションにフックする必要があります。

それ以外の:

add_action("admin_init", "admin_init");

使用する:

add_action("add_meta_boxes", "admin_init");

また、関数にプレフィックスを使用することをお勧めします。 your を呼び出す代わりに、function admin_initit を呼び出すことができますmyplugin_admin_init。これにより、関数の命名によるエラーを回避できます。

于 2014-07-16T08:32:22.330 に答える