无法使用自定义帖子类型在WordPress中保存元框数据

时间:2020-07-27 作者:Khalid Almallahi

我已经创建了一个元框。代码为:

/**
 * Add meta box 
 *
 * @param post $post The post object
 * @link https://codex.wordpress.org/Plugin_API/Action_Reference/add_meta_boxes
 */
function portfolio_add_meta_boxes( $post ){
    add_meta_box( \'portfolio_meta_box\', __( \'Company URLs\', \'portfolio\' ), \'portfolio_build_meta_box\', \'portfolio\', \'side\', \'low\' );
}
add_action( \'add_meta_boxes_portfolio\', \'portfolio_add_meta_boxes\' );

/**
 * Build custom field meta box
 *
 * @param post $post The post object
 */
function portfolio_build_meta_box( $post ){
    // make sure the form request comes from WordPress
    wp_nonce_field( basename( __FILE__ ), \'portfolio_meta_box_nonce\' );

    // retrieve the  current value
    $fbportfolio = get_post_meta( $post->ID, \'fbportfolio\', true );
    $twportfolio = get_post_meta( $post->ID, \'twportfolio\', true );
    $instportfolio = get_post_meta( $post->ID, \'instaportfolio\', true );
    $linkinportfolio = get_post_meta( $post->ID, \'linkinportfolio\', true );

    ?>
    <div class=\'inside\'>

        <h3>Facebook</h3>
        <p>
        <input type="url" name="fbportfolio" value="<?php echo $fbportfolio; ?>">
        </p>

    
    
    </div>
    <?php
}

/**
 * Store custom field meta box data
 *
 * @param int $post_id The post ID.
 * @link https://codex.wordpress.org/Plugin_API/Action_Reference/save_post
 */
function portfolio_save_meta_box_data( $post_id ){

    // store custom fields values
    update_post_meta( get_the_ID(), \'fbportfolio\', $_POST[\'fbportfolio\'] );


}
add_action( \'save_post_food\', \'portfolio_save_meta_box_data\' );

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

add_action( \'save_post\', ...
并测试您的帖子类型是否为教程自定义帖子类型。

SO网友:Tom J Nowell

您可以避免在save_post 使用操作save_post_{post_type}

例如。

add_action( \'save_post_portfolio\', .....
哪里portfolio 正在保存的帖子类型。使用save_post 除非显式选中,否则将为所有帖子类型运行代码。

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在