2016-08-02 26 views
1

私はカスタムテーマを作成していて、いくつかのカスタム投稿タイプを追加しています。カスタムの投稿タイプごとに、どちらのセクションでも新しい投稿を作成するたびに、カスタムフィールドの特定のセットを選択する必要があります。Wordpressのカスタム投稿タイプ - カスタムフィールド

たとえば、車の詳細を表示するカスタムポストタイプ「モーター」があります。このカスタムポストタイプを使用して新しい車を追加するたびに、同じカスタムフィールドのセットを手動で選択して(マイレージ、燃料タイプ、色など)入力する必要があります。

Wordpressカスタムフィールドを使用するMotorsカスタムポストタイプのカスタムメタボックスを作成することはできますか?そして、私はそれが自動的に私が選択した5つほどのカスタムフィールドを自動的にリストにして、公開前にそれぞれに値を入力するように要求することはできますか?

+0

この投稿は、あなたが探しているものを含める必要があります。http://wptheming.com/2010/08/custom-metabox-for-post-type/ – Peter

答えて

0

はい、可能です。高度なカスタムフィールドプラグインの使用をお勧めします。

https://www.advancedcustomfields.com/

これはWordPressのカスタムフィールドどうあるべきか、本質的です。特定の投稿タイプ、ページタイプなどにテキスト、テキストエリア、画像などの任意の数のカスタムフィールドを追加することができ、あなたが記述しているものに最適です。

+0

パーフェクト!私はプラグインを使用せずにこれを行うことを望んでいた、これはプラグインはちょうど良いです私はそれを使用しないようにばかになるでしょう。ありがとうございました。 – Craig

+0

ええ、私はプラグインを避けようとしていますが、これはほとんどの場合理想的です。お役に立てて嬉しいです! – AdamMcquiff

0

コードを試してみてください。投稿に表示される画像URLを入力するためのテキストボックスが追加されます。このコードを使用して、投稿タイプを適宜変更してください。また、任意の数のフィールドを使用できます。

add_action('admin_init','add_metabox_post_banner_image_widget'); 
add_action('save_post','save_metabox_post_banner_image_widget'); 

/* 
* Funtion to add a meta box to enable banner image widget on posts. 
*/ 
function add_metabox_post_banner_image_widget() 
{ 
    add_meta_box("banner_image", "Enable Banner Image", "enable_post_banner_image_widget", "post", "normal", "high"); /* replace "post" with your custom post value(eg: "motors") */ 
} 

function enable_post_banner_image_widget(){ 
global $post; 

$image=get_post_custom($post->ID); 
//print_r($image); 

$banner_image_src = $image['post_banner_image_src'][0]; 

?> 

<label for="post_banner_image_src">Banner Image Url:</label> 
<input type="text" name="post_banner_image_src" id="post_banner_image_src" value="<?php if($banner_image_src!=''){echo $banner_image_src; } ?>" > 
<p><em>Example: https://website.com/wp-content/uploads/2016/06/google.jpg</em></p> 

<?php 
} 

/* 
* Save the meta box value of banner image widget on posts. 
*/ 
function save_metabox_post_banner_image_widget($post_id) 
{ 
// Bail if we're doing an auto save 
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; 

// if our current user can't edit this post, bail 
if(!current_user_can('edit_post')) return; 

$banner_image_src = isset($_POST['post_banner_image_src']) ? $_POST['post_banner_image_src']:''; 

update_post_meta($post_id, 'post_banner_image_src', $banner_image_src); 

} 
関連する問題