您是否可以为自定义字段设置默认值

时间:2013-01-29 作者:jeremy rice

我希望为特定的自定义字段设置一个默认值,以防客户端没有将其添加到自定义字段中,它已经有了一个与之关联的特定数字。

更深入一步,我希望这样,如果选择cat=22,这个自定义字段会自动添加到帖子中,默认值是希望客户端添加正确的数字

我认为这可以通过一个全局功能来完成,但我的大脑现在没有处理这个问题

2 个回复
SO网友:Eugene Manuilov

您可以通过在save_post 行动这样,您的所有帖子都将具有自定义字段的默认值。

add_action( \'save_post\', \'wpse8170_save_post\', 10, 2 );
function wpse8170_save_post( $post_id, WP_Post $post ) {
    if ( ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) || !current_user_can( \'edit_post\' ) ) {
        return;
    }

    if ( has_category( 22, $post_id ) && !get_post_meta( $post_id, \'my-custom-field\', true ) ) {
        update_post_meta( $post_id, \'my-custom-field\', \'my default value\' );
    }
}

SO网友:Wyck

您不会通过全局执行此操作,只需使用add_post_meta.

// your loop
if ( in_category(22)) {

    //check if the meta field has a value
    $meta_values = get_post_meta($post->ID, \'your_meta_key\', true);

    if(empty($meta_values)){
    //add a default value
    add_post_meta($post->ID, \'your_meta_key\', \'some default value\');
    }
}
参考号:http://codex.wordpress.org/Custom_Fields

结束

相关推荐

Functions.php:从博客中排除类别

所以很明显,如何从模板中排除某些类别,但我不想修改4个模板,使它们忽略某个类别。有没有一种方法可以将某个类别从阅读设置的“博客”集中排除?我正在将博客分配到名为“博客”的页面。。。但显然,档案和搜索也需要对这一超出类别的内容视而不见。我宁愿在里面做functions.php