在新帖子上预填自定义域

时间:2015-09-03 作者:Alpha_Hydrae

我希望在用户打开管理面板中的“添加新帖子”页面创建新帖子时,自动添加和预填充一些自定义字段(使用静态默认值)。关键是要将自定义字段设置为默认值,以便添加文章的人可以看到它们,并在需要时修改这些值。

我把这些钩子都找遍了,但找不到合适的。我也不知道如何在新的帖子表单中预填充自定义字段部分。有什么想法吗?

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

这里有一种方法可以为新帖子添加一个已经添加并可见的自定义字段:

/**
 * Preset a custom field for new posts
 *
 * @link http://wordpress.stackexchange.com/a/200554/26350
 */
add_action( \'save_post_post\', function( $post_ID, $post, $update )
{
    if( 
            is_a( $post, \'\\WP_Post\' )
        &&  \'auto-draft\' === $post->post_status
        &&  post_type_supports( $post->post_type, \'custom-fields\' ) 
        && \'0000-00-00 00:00:00\' === $post->post_date_gmt 
        && $post_ID > 0
        && ! $update
    )
        add_post_meta( $post_ID, \'wpse_custom_field\', \'123\' );

}, 10, 3 );
这里我们使用save_post_{post-type}

然后,我们将在添加新帖子屏幕上看到:

preset custom field

正如@Alpha\\u Hydrae和@MarkKaplen的评论所述,我们应该能够将其简化为:

/**
 * Preset a custom field for new posts
 *
 * @link http://wordpress.stackexchange.com/a/200554/26350
 */
add_action( \'save_post_post\', function( $post_ID )
{
    if( \'auto-draft\' === get_post_status( $post_ID )
        &&  post_type_supports( get_post_type( $post_ID ), \'custom-fields\' ) 
    )
        add_post_meta( $post_ID, \'wpse_custom_field\', \'123\' );
} );

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: