是否在每次刷新页面时停止`UPDATE_POST_META`?

时间:2014-03-17 作者:David H

我这里的代码包括update_post_meta 使它在单击我的按钮时工作,尽管我没有找到如何防止update_post_meta 因为我在某个页面上有此按钮,所以无法刷新/访问每个页面。

代码如下:

    <form action="" method="post">
        <input type="submit" value="Test" id="submit">
        <?php
        $post = array(
            \'post_title\'   => $column1,
            \'post_status\'  => \'draft\',
            \'post_type\'    => \'bedrijf\'
        );

        $thisid = wp_insert_post ( $post, true);
        if(!isset($_POST[\'submit\'])){
            if ( is_wp_error($thisid) ) {
                return get_error_codes();
            }
        }else{
            wp_insert_post($thisid);
            update_post_meta( $thisid, \'field_1223ewedwd3123\', $column2);

        }
        ?> 

    </form>

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

再看一遍,你似乎要插入两次帖子。wp\\U insert\\U post返回以下内容(来自codex):

如果帖子成功添加到数据库,则为帖子的ID。失败时,如果$wp\\u error设置为false,则返回0;如果$wp\\u error设置为true,则返回wp\\u error对象。

因此,如果提交了表单,您希望检查$thisid上是否有错误:

<form action="" method="post">
    <input type="submit" value="Test" id="submit" name="submit">
    <?php
    // if post submit is set
    if(isset($_POST[\'submit\'])){
        // setup the post parameters, best not to call this $post
        // as that may interfere with the global $post var in WP
        $postargs = array(
            \'post_title\'   => $column1,
            \'post_status\'  => \'draft\',
            \'post_type\'    => \'bedrijf\'
        );

        // attempt to insert the post
        $thisid = wp_insert_post ( $postargs, true);

        // if there was an error, return the codes
        if ( is_wp_error($thisid) ) {
            return get_error_codes();
        // if not, update the meta
        } else {  
            update_post_meta( $thisid, \'field_1223ewedwd3123\', $column2);
        }
    }
    ?> 

</form>
此外,您似乎正在更新ACF字段?如果是这样,您应该在update\\u post\\u meta上使用它们的update函数。其更新功能将确保根据字段类型正确格式化数据:

http://www.advancedcustomfields.com/resources/functions/update_field/

结束

相关推荐

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

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