我经营着一个由数百名编辑组成的网站网络,最近有图像版权巨魔在追击我们。这些图片中的大多数都是一年或更老的,所以我们希望从超过6个月的帖子中删除所有图片。
目前,我已经编写了一个插件,它使用SQL查询从帖子内容中删除图像,并在每日cron上运行。我唯一搞不清楚的是,删除这些帖子上的特色图片,这让我头痛不已。以下工作,如果手动完成:
delete_post_thumbnail( POST ID HERE );
但是,如果我使用foreach循环运行查询,它将不起作用。所以,我有一些根本不起作用的东西:
function featured_image_removal() {
$args = array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'date_query\' => array(
\'column\' => \'post_date\',
\'after\' => \'-180 days\'
)
);
$posts = get_posts($args);
foreach($posts as $post) {
delete_post_thumbnail($post->ID);
}
}
我的功能,featured\\u image\\u removation,然后通过cron运行。cron正在工作,因为我的另一个功能(从帖子内容中删除图像)工作得非常好。
你知道为什么这样不行吗?它可能就在我的面前,我已经看了很久了,我没有看到它。任何帮助都将不胜感激!帮我别再把头撞在桌子上了D
SO网友:Rarst
我认为你主动放弃这里的数据可能是在开玩笑。如果下个月巨魔消失了,你改变主意,想要所有这些特色图片回来怎么办?
我只想在前端通过编辑模板和使缩略图输出有条件或过滤API来抑制它们,如下所示:
if ( ! is_admin() ) {
add_filter( \'get_post_metadata\', function ( $null, $post_id, $meta_key ) {
if ( \'_thumbnail_id\' === $meta_key ) { // add check for date or whatever
return false;
}
return $null;
}, 10, 3 );
}
这样,您可以保留所有现有数据,只需阻止显示特征图像即可。如果你改变主意,只需取消支票,一切就都回来了。