Media library orphans

时间:2013-09-18 作者:mantis

我有一个条件语句,用于检查是否已将图像添加到自定义帖子类型,如果未添加,则插入默认图像。

if ( get_post_meta( get_the_ID(), \'team_page_custom_image\', true ) ) {

echo wp_get_attachment_image($post_meta_data[\'team_page_custom_image\'][0], \'medium\');  
    }  
    else {
        echo \'<img src="\' . get_bloginfo( \'stylesheet_directory\' ) . \'/img/team-logo.png" />\';
    }
它似乎工作得很好,除非选择了一个图像,然后从媒体库中删除,它留下了一个空白点,因为数据库中仍然有一个用于后期元数据的元数据值。

我知道我可以从数据库中删除它们,但是否有一个功能可以处理媒体库删除的孤儿?

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

也许它可以在运行时解决。wp_get_attachment_image 表示:

返回表示附件文件(如果有)的HTML图像元素,否则返回空字符串。

因此,如果设置了post meta,但给出了一个空字符串,那么我们应该删除post meta。

$default = \'<img src="\' . get_stylesheet_directory_uri() . \'/img/team-logo.png" />\';

if ( get_post_meta( get_the_ID(), \'team_page_custom_image\', true ) ) 
{
    $get_img = wp_get_attachment_image( $post_meta_data[\'team_page_custom_image\'][0], \'medium\' );  

    if( !emtpy( $get_img ) )
    {
        echo $get_img;
    }
    else
    {
        delete_post_meta( get_the_ID(), \'team_page_custom_image\' );
        echo $default;
    }
}  
else 
{
    echo $default;
}
或者,您可以使用get_posts() (在某些钩子或设置API中)迭代所有帖子并检查/删除孤立项。

结束

相关推荐

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

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