如何防止在single.php上使用wp_INSERT_POST重复发帖?

时间:2011-05-30 作者:TheCosmonaut

我遇到了一个非常奇怪的bug(WP 3.1.3)。我的目标是让用户只需登陆一个帖子,就可以创建一个新帖子。为了实现这一点,我的单曲中有以下代码。php:

    <?php
    //-- Set up post values
    $myPost = array(
        \'post_status\' => \'publish\',
        \'post_type\' => \'post\',
        \'post_author\' => 2,
        \'post_title\' => \'e3i8ir\',
        \'comment_status\' => \'closed\',
        \'ping_status\' => \'closed\',
        \'post_category\' => array(24),
    );

    //-- Create the new post
    $newPostID = wp_insert_post($myPost);

    ?>
当然,这应该只插入一条记录,对吗?然而,当我使用这个函数时,它会创建两个完全相同的帖子。

查看页面时,\\u内容只显示一次,因此页面不会显示多次(因此会导致两次wp\\U insert\\u post调用)。

有人知道这是什么原因吗?

提前谢谢,-埃里克

3 个回复
SO网友:dwenaus

尝试将脚本放入函数中,并在动作挂钩期间运行它。可能是wp\\u页脚挂钩。

SO网友:petermolnar

在主题的开头指定一个唯一的ID。这将是新创建帖子的自定义字段中的标识字符串。

添加帖子之前,请在自定义字段中搜索具有此唯一ID的帖子。如果找不到,请添加帖子和自定义字段。

Here you can find examples how to query posts by custom fields.

SO网友:mireille raad

一个错误修复可能是将post字段在数据库中标记为唯一-如果第一次插入成功,第二次插入将失败

在你找到更合适的解决方案之前,这是一个棘手的问题

结束

相关推荐

自定义分类不适用于新WP_QUERY中的POSTS_PER_PAGE(分页问题)

好的,我第二次搞乱了自定义分类法,在这两种情况下,我都遇到了这个问题,在query\\u posts或WP\\u查询场景中使用posts\\u per\\u page参数。。基本上,如果我对每页的帖子设置了自定义限制,单击“下一步”或“上一步”按钮会显示404个错误。。无论我使用的是自定义permalink结构还是任何默认值,结果都是一样的。我成功控制页面帖子数量的唯一方法是通过仪表板中的阅读设置。我发现有很多人提到过这个问题,但除了上面提到的仪表板设置之外,还没有找到有效的解决方案:wordpress.