保存不同自定义帖子的数据

时间:2012-02-23 作者:redconservatory

我注册了三种不同的职位类型:

register_post_type( \'foo\' , $args );
register_post_type( \'bar\' , $args );
register_post_type( \'baz\' , $args );
当我创建一个新的,比如“foo”帖子时,我只想保存“foo”的元框,我该怎么做?

add\\u action(\'save\\u post\',\'save\\u details\');

因此,如果我的post\\u类型被称为“foo\\u post”:

add_meta_box( 
    $id, 
    $title, 
    $callback, 
    // SPECIFY THE POST TYPE HERE!!!
    "foo_post", 
    $context, 
    $priority, 
    $callback_args );
当我创建/编辑“foo post”页面时,如何只保存“foo post”元框?

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

由于save\\u post为您提供当前帖子的post\\u id,您只需使用get\\u post\\u type($post\\u id)检查它是什么post\\u类型

例如:

add_action(\'save_post\', \'save_details\')

function save_details($post_id)
{
     $post_type = $_REQUEST[\'post_type\'];

     if (\'foo_post\' == $post_type)
     {
          // save stuff for foo_post
     }
     elseif (\'bar_post\' == $post_type)
     {
          // save stuff for bar_post
     }
}
等等。。。

get_post_type() codex page

SO网友:Chip Bennett

我想你说的是一个自定义的post meta框?如果是,那么您需要确保*指定$posttype 当你打电话的时候add_meta_box(). e、 g.:

<?php
add_meta_box( 
    $id, 
    $title, 
    $callback, 
    // SPECIFY THE POST TYPE HERE!!!
    $post_type, 
    $context, 
    $priority, 
    $callback_args );
?>
如果您不是在引用自定义的post meta框,那么您需要提供更多关于您试图操作的post meta框的信息。

结束

相关推荐