如何在wp_posts表的guid列中生成URL?

时间:2019-10-02 09:16:17

标签: mysql wordpress woocommerce

我正在尝试向wordpress网站添加新帖子。我使用直接插入查询到mysql数据库到wp_posts列。问题是guid列为空,对于其他帖子,它中包含url。我如何使用查询为新记录生成guid列的url?

我尝试使用uuid(),但它会创建ID,而不是URL。

3 个答案:

答案 0 :(得分:1)

这不是一个好习惯。 Wordpress具有创建/更新帖子的功能,无需您费力就可以解决这个问题。

阅读有关wp_insert_post()函数的信息。您只需准备好帖子的内容,然后将其传递给函数即可。

这样,wordpress将对数据进行清理和验证,以避免错误或重复项冲突。

此外,通常将例程(来自插件和主题)设置为每次创建帖子时运行。如果直接在数据库中创建,则不会触发这些例程。

答案 1 :(得分:1)

该列,尽管其名称不包含Paul Leach / RFC4122意义上的向导。它包含看起来像URL的唯一标识符。通常,它们与某种永久链接有关。但是您不必填充该列。

如果要使用程序而不是交互方式创建帖子/页面/媒体/ etc,则实际上至少必须了解WordPress的wp_insert_post()函数。您可以在任何WordPress安装的PHP部分或source code中阅读其here

大多数需要插入帖子的人都使用插件。

答案 2 :(得分:0)

通过插入查询将数据插入到wordpress帖子表中以创建新帖子不是一个好习惯。

使用以下功能将数据插入到wordpress中,它将自动创建guid和其余所需列。

                $post_title='Sample wordpress post';
                $post_content='Sample wordpress post';

                $my_post = array(
                'post_title' => wp_strip_all_tags($post_title),
                'post_content' => $post_content,
                'post_status' => 'publish',
                'post_category' => array(a)
            );

            // Create a new post
            $post_id = wp_insert_post($my_post);

如果您有任何其他格式的数据,则将其存储在自定义表中,从自定义表中获取数据,并使用上述功能将每行创建为WordPress帖子。