2016-08-02 155 views
1

我正在创建自定义主题并添加了一些自定义帖子类型。对于每个自定义帖子类型,每当我在任一部分创建新帖子时,我都需要选择一组特定的自定义字段。Wordpress自定义帖子类型 - 自定义字段

例如,我有用于显示汽车细节的自定义帖子类型“Motors”。每次使用此自定义帖子类型添加新车时,我都必须手动选择相同的一组自定义字段并填写(里程,燃料类型,颜色等)。

是否可以使用Wordpress自定义字段为我的马达自定义帖子类型创建自定义元框?我能否自动列出我总是选择的5个左右的自定义字段,并且只需要我在发布之前为每个字段输入一个值?

+0

这篇文章应该包含你要查找的内容:http://wptheming.com/2010/08/custom-metabox-for-post-type/ – Peter

回答

0

是的,这是可能的。我会推荐使用高级自定义字段插件。

https://www.advancedcustomfields.com/

实际上,这就是WordPress的自定义字段应该是。它可以让你添加任意数量的自定义字段,包括文本,textareas,图像等到特定的帖子类型,页面类型等,并且对你所描述的内容来说是理想的。

+0

完美!我希望能够在不使用插件的情况下做到这一点,这是插件是如此之好,我会愚蠢的不使用它。谢谢。 – Craig

+0

是的,我试图避免插件,但这是大多数情况下的理想选择。很高兴我能帮上忙! – AdamMcquiff

0

试试以下代码。它会添加一个文本框,允许输入将在帖子中显示的图片网址。使用下面的代码并相应地更改您的文章类型。你也可以任意数量的字段。

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

} 
相关问题