助けてください.. wordpressを初めて使用し、フィールド(場所、ドレス)のcustom_meta_boxを使用してカスタム投稿を作成しています
したがって、カスタム投稿のリストで、custom_meta_box で作成した値を表示したいと考えています。
ここに私の現在のコードがあります:
/*
プラグイン名: 自分のカスタム投稿
プラグイン URI: http://www.mywebsite.com/firstPlugin/
説明: 私のサンプルの説明
作者:モンスキー
バージョン: 1.0
著者 URI: http://www.mywebsite.com/
*/
// 新しい投稿タイプとタクソノミーを登録します
関数 wpt_event_posttype() {
register_post_type( 'イベント',
配列(
'ラベル' => 配列(
'名前' => __( 'イベント' ),
'singular_name' => __( 'イベント' ),
'add_new' => __( '新しいイベントを追加' ),
'add_new_item' => __( '新しいイベントを追加' ),
'edit_item' => __( '編集イベント' ),
'new_item' => __( '新しいイベントを追加' ),
'view_item' => __( 'ビュー イベント' ),
'search_items' => __( '検索イベント' ),
'not_found' => __( 'イベントが見つかりません' ),
'not_found_in_trash' => __( 'ゴミ箱にイベントが見つかりません' )
)、
「公開」 => 真、
'supports' => array( 'title', 'editor', 'thumbnail', 'comments' ),
'capability_type' => '投稿',
'rewrite' => array("slug" => "events"), // パーマリンク形式
'menu_position' => 5,
'register_meta_box_cb' => 'add_events_metaboxes'
)
);
}
add_action( 'init', 'wpt_event_posttype' );
関数 add_events_metaboxes() {
// add_meta_box('wpt_events_date', 'Event Date', 'wpt_events_date', 'events', 'side', 'default');
add_meta_box('wpt_events_location', 'イベントの場所', 'wpt_events_location', 'events', 'normal', 'high');
}
add_action( 'add_meta_boxes', 'add_events_metaboxes' );
関数 wpt_events_location() {
グローバル $post;
// データの発信元を確認するために Noncename が必要
エコー '';
// すでに入力されている場合は位置データを取得します
$location = get_post_meta($post->ID, '_location', true);
$dresscode = get_post_meta($post->ID, '_dresscode', true);
// フィールドをエコーアウトする
エコー '場所を入力してください:
';
エコー '';
エコー '人々はどのように服を着るべきですか?
';
エコー '';
}
function wpt_save_events_meta($post_id, $post) {
// これが私たちの画面からのものであることを確認し、適切な承認を得て、
// save_post は別のタイミングでトリガーできるため
if ( !wp_verify_nonce( $_POST['eventmeta_noncename'], plugin_basename(__FILE__) )) {
$post->ID を返します。
}
// ユーザーは投稿またはページを編集できますか?
if ( !current_user_can( 'edit_post', $post->ID ))
$post->ID を返します。
// OK、認証されました: データを見つけて保存する必要があります
// ループしやすいように配列に入れます。
$events_meta['_location'] = $_POST['_location'];
$events_meta['_dresscode'] = $_POST['_dresscode'];
// $events_meta の値をカスタム フィールドとして追加します
foreach ($events_meta as $key => $value) { // $events_meta 配列を循環します!
if( $post->post_type == 'リビジョン' ) return; // カスタム データを 2 回保存しないでください
$value = implode(',', (array)$value); // $value が配列の場合、CSV にします (ありそうにありません)
if(get_post_meta($post->ID, $key, FALSE)) { // カスタム フィールドにすでに値がある場合
update_post_meta($post->ID, $key, $value);
} else { // カスタム フィールドに値がない場合
add_post_meta($post->ID, $key, $value);
}
if(!$value) delete_post_meta($post->ID, $key); // 空白の場合は削除
}
}
add_action('save_post', 'wpt_save_events_meta', 1, 2); // カスタム フィールドを保存します