自定义帖子类型中的预选自定义字段

时间:2011-07-17 作者:user5057

我有一个名为“stock”的自定义帖子类型,每个帖子都有一个stock\\u id、stock\\u name、stock\\u description和stock\\u available字段,。。。我希望这些字段有默认值,这样用户就不必在每个新项目上加载它们。有办法吗?

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

一个简单的方法就是Verve Meta Boxes 插件,用于定义具有简单UI的元盒(no code is needed) 您可以选择为每个字段设置默认值。

SO网友:Dan Smart

两种方法:1)更加用户友好:将为这些自定义字段创建一个元框。这些自定义字段的元框将包含<input /> 元素-然后可以在这些元素中输入默认值,保存帖子时将存储该值。

看见add_meta_box 了解更多信息。

2) 至少,您可以挂接“save\\u post”操作,并检查是否有值,如果没有,则将其存储为元值:

add_action( \'save_post\', \'myplugin_save_postdata\' );

function myplugin_save_postdata($post_id)
{
  // verify if this is an auto save routine. 
  // If it is our form has not been submitted, so we dont want to do anything
  if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) 
      return;

  // Check permissions
  if ( \'page\' == $_POST[\'post_type\'] ) 
  {
    if ( !current_user_can( \'edit_page\', $post_id ) )
        return;
  }
  else
  {
     if ( !current_user_can( \'edit_post\', $post_id ) )
        return;
  }

  // OK, we\'re authenticated: we need to find and save the data

  $mydata = $_POST[\'myplugin_new_field\'];

  if (!$mydata)
  {
    // add default value
    $mydata = \'a default value;
  }

  // save the data
  update_post_meta($post_id, \'my_meta_field\', $mydata);

  return $mydata;
}

结束

相关推荐