我可以安全地手动删除wp postmeta表中的记录吗?

时间:2016-09-07 作者:Leora Deans

我在帖子的元数据中有一个错误。它阻止我更正或添加来自帖子本身的新值。

如果我进入数据库POSTETA表并转到该post ID的条目,我可以看到错误。

我可以安全地删除posteta表中的整个条目吗?没有其他post meta可担心。

或者,我可以看到WordPress函数delete_post_meta(). 但是,我不确定如何在functions.php 还有钩子。

我可以从仪表板上删除并重新输入整个帖子,但我认为Posteta表中旧帖子的条目仍然会存在,孤立的,对吗?)

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

目前尚不清楚Posteta的实际作用,因此它可能会以多种方式影响您的网站
At best 它只会清除字段/选项,用户需要重新输入该特定页面的字段/选项
At worst 它可能会更改页面布局或孤立媒体库中的媒体文件(假设该字段包含附件ID)。除此之外,我看不出为什么删除Posteta表中的一行会极其有害。

无论何时删除帖子,WordPress都会删除分配给该帖子ID的所有Postetawp_delete_post() 函数表示。。。

当文章和页面[被删除]时,与之相关的所有内容也会被删除。这包括注释、post元字段以及post和分类术语之间的关系。

这个delete_post_meta() 该函数几乎可以在加载core的任何地方运行。你可以把它放在initsave_post 钩住并运行它一次,然后删除函数调用。例如:

function delete_somemeta() {
    // This will run every single time a page is loaded.
    delete_post_meta( $POST_ID, \'META_KEY_NAME\' );
}
您可以将此添加到functions.php, 重新加载网站前端,然后将其删除,这将有效地执行与从数据库中删除行相同的操作。

这种类型的函数通常被视为在save_postsaving metabox data.

相关推荐

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

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