我正在尝试向wordpress网站添加新帖子。我使用直接插入查询到mysql数据库到wp_posts列。问题是guid列为空,对于其他帖子,它中包含url。我如何使用查询为新记录生成guid列的url?
我尝试使用uuid(),但它会创建ID,而不是URL。
答案 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帖子。