将自定义域添加到现有帖子(管理页面)

时间:2014-10-05 作者:eballo

我可以使用操作挂钩为新帖子(在管理页面中)添加一个自定义字段wp_insert_post. 但我想为旧帖子添加自定义字段,当我编辑帖子(在管理页面中)时,是否有任何操作挂钩可以做到这一点?

我正在使用的示例代码:

 /**
 * Default custom field for Municipi
 * @param [type] $post_ID [description]
 */
function set_default_custom_field_municipi($post_ID){
    $municipi = get_post_meta($post_ID,\'municipi\',true);
    $default_meta = \'\'; // value

    add_post_meta($post_ID,\'municipi\',$default_meta,true);

    return $post_ID;
}

/** add custom fields by default */
add_action(\'wp_insert_post\',\'set_default_custom_field_municipi\');
提前感谢,

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

正如AndreasKrischer所建议的,我修复了使用脚本更新所有旧值,然后只使用wp_insert_post 为新帖子创建自定义字段。

我使用的脚本:

INSERT INTO wp_postmeta( post_id, meta_key, meta_value ) 
SELECT wp_posts.ID,  \'municipi\',  \'\'
FROM wp_posts
WHERE wp_posts.post_status =  \'publish\'
AND wp_posts.post_type =  \'post\'
在这里,我更新所有状态为publish且类型为post的帖子,并创建一个名为municipi 初始值为空。

SO网友:Giovanni Putignano

我认为您需要一个模板,用于与帖子类型相关的自定义字段。您可以添加元框并添加自定义字段:

add_action( \'add_meta_boxes\', \'gp_add_meta_boxes\' );
function gp_add_meta_boxes() {
    add_meta_box( \'gp_product\', \'Products Options\', \'gp_products_callback\', \'products\', \'normal\', \'high\' );
}

function gp_products_callback( $post ) {
    $fname = get_post_meta( $post->ID, \'fname\', true );
    $lname = get_post_meta( $post->ID, \'lname\', true );
    ?>
    <p>First Name: <input type="text" name="fname" value="<?php echo $fname; ?>"></p>
    <p>Last Name: <input type="text" name="lname" value="<?php echo $lname; ?>"></p>
    <?php
}
在上面的示例中,您可以根据需要添加不同类型的输入。

结束

相关推荐