使用POST保存元数据,不使用任何插件

时间:2018-01-09 作者:omid

我有一个职位类型,我需要节省每一个项目的价格。

请建议我如何在我的帖子类型中创建元字段,而不使用任何插件?

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

您可以为此添加自定义元字段。

下面是为post类型添加元字段的示例代码post. 有关更多详细信息,请参阅link.

<?php

    /************************************************************************/
    function myPrice_meta_box()
    {
        add_meta_box(\'myPrice_field\', \'Price\', \'myPrice_meta_box_callback\', \'post\', \'normal\', \'high\');
    }

    add_action(\'add_meta_boxes\', \'myPrice_meta_box\');

    /**
     * Prints the box content.
     *
     * @param WP_Post $post The object for the current post/page.
     */
    function myPrice_meta_box_callback($post)
    {
        global $post;
        // Add a nonce field so we can check for it later.
        wp_nonce_field(\'myPrice_meta_box\', \'myPrice_meta_box_nonce\');
        /*
        * Use get_post_meta() to retrieve an existing value
        * from the database and use the value for the form.
        */
        $item_Price = get_post_meta($post->ID, \'_price_\', true);
    ?>
            <p class="order_id">
                <span>
                    <label>Price::</label> 
                    <input type="text" name="_price_" size="50" value="<?php echo $item_Price ?>" placeholder="Price">
                </span><br/>
            </p>
    <?php
    }

    /**
     * When the post is saved, saves our myPrice data.
     * @param int $post_id The ID of the post being saved.
     */
    function myPrice_meta_box_data($post_id)
    {   
        /*
        * We need to verify this came from our screen and with proper authorization,
        * because the save_post action can be triggered at other times.
        */
        /* Check if our nonce is set.*/
        if (!isset($_POST[\'myPrice_meta_box_nonce\']))
        {
            return;
        }
        /* Verify that the nonce is valid.*/
        if (!wp_verify_nonce($_POST[\'myPrice_meta_box_nonce\'], \'myPrice_meta_box\'))
        {
            return;
        }

        /* If this is an autosave, our form has not been submitted, so we don\'t want to do anything.*/
        if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE)
        {
            return;
        }

        $price = isset($_POST["_price_"] ) ? $_POST["_price_"]  : \'\';

        /* Update the meta field in the database.*/
        update_post_meta($post_id, \'_price_\', $price);
    }

    add_action(\'save_post\', \'myPrice_meta_box_data\');
?>

结束

相关推荐

当我在帖子的metabox中使用WP_QUERY时,Slug正在更改

我想使用一个元框,允许作者在所有帖子编辑页面中选择相关帖子。。代码在发布帖子时起作用,元数据正在保存。。但《华盛顿邮报》的头条新闻正在发生变化。例如,我的帖子的url是“www.example.com/qwerty”。在我通过更改相关帖子发布帖子后,url是“www.example.com/asdfgh-2”。“asdfgh”是前一篇文章的鼻涕虫。我很困惑,这是一个很奇怪的问题。我几天来一直在努力解决这个问题,但我做不到。。我的代谢箱在下面。在元数据库中使用循环是否错误?<div class=\"m