質問: 管理uiでカスタムフィールドを標準にする 私は私のwordpress 3のインストールにいくつかの異なるcustom_post_typesを追加しました。それらはすべて互いに少し異なっているので、custom_fieldsに固有の情報を格納する必要があります。しかし、product_idを格納することができる一方で、別のものは格納しません。 1つはsource_urlを持ち、もう1つは持ちません。どのカスタム投稿をどのカスタム投稿で使用するかについてエディタに指示するのではなく、各カスタム投稿にカスタムフィールドをui自体の一部として含める方法を教えてください。"daily_cartoon"にアクセスすると、 title 、 caption 、およびメディアのみを要求する画面が表示されます。 . "daily_product"にアクセスすると、 title 、 price 、のみを要求する画面が表示されます。 //] summary など.
回答: 私は最近、テーマの範囲内で作業しながら、非常によく似た問題に取り組む必要があります。コードの基礎は、この 投稿 からのもので、私はいくつかのコードを修正しました。以下は私が修正したコードの最初の部分です。 add_action('init', 'limited_post_type'); function my_custom_limited_post_type() { $labels = array( 'name' => _x('limited post type', 'post type general name'), 'singular_name' => _x('film - dvd', 'post type singular name') ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'hierarchical' => false, 'menu_position' => null, 'supports' => array('title','editor','author','thumbnail','excerpt', 'page-attributes','custom-fields' ), 'show_in_nav_menus' => true ); register_post_type('limited_post_type', $args); } 以下は私が修正したコードの2番目の部分です。foreach ( $scope as $scopeitem ) { switch ( $scopeitem ) { case "post": { // output on any post screen if ( basename( $_server['script_filename'] )=="post-new.php" || $post->post_type=="post" ) $output = true; break;} case "page": { // output on any page screen if ( basename( $_server['script_filename'] )=="page-new.php" || $post->post_type=="page" ) $output = true; break;} case "limited_post_type": { // output on limited post_type onlye if ((basename( $_server['script_filename'] )=="post-new.php" && $post->post_type=="limited_post_type" ) || (basename( $_server['script_filename'] )=="post.php" && $post->post_type=="film_dvd" )) $output = true; break; } あなたが好きなら私にメッセージを送ってください、そして私はあなたの参考のためにあなたに私のfunctions.phpファイルを喜んで送ります。私があなた自身のように引っ張っている髪の多くの夜を経たけれども、これは確かにそれを起こさせる方法です。