如何检查图片是否已经存储在站点的帖子数据库中?(网络)

时间:2013-01-02 作者:Ollie

我目前已配置Wordpress,以便将帖子复制到Wordpress网络中的其他站点。然而,一篇帖子可能会被广播不止一次,我想检查一下图片是否已经发布到该网站的wp_posts 桌子

例如,假设图像具有图像路径:

/wp-content/uploads/2012/01/an_image.jpg
所有图像都由网络存储在此文件夹设置中(而不是默认设置/blogs.dir/files/).

换句话说,Wordpress是否可以查询数据库以检查表中是否已经存在该数据库,或者是否需要将其编写为PHP数据库查询?

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

是的,可以使用WordPress进行数据库查询:

function is_image_in_network( $image_name )
{
    global $wpdb;
    $image = "uploads/2012/01/{$image_name}";
    $value = \'%\'.like_escape( $image ).\'%\';
    $blog_id = get_current_blog_id();
    $wpdb->set_blog_id( $blog_id );
    $image = $wpdb->get_var( 
        $wpdb->prepare( 
            "SELECT ID FROM {$wpdb->posts} 
            WHERE  post_status = \'publish\' 
            AND post_content LIKE \'%s\'"
            , $value 
        ) 
    );
    return is_null( $image ) ? false : true;
}
您可以在模板中使用它作为函数。只需添加图像名称,即可作为参数进行搜索。新的“模板标记”与每个默认WP“条件标记”类似。

是吗image.php 在这个问题上是错别字吗?

我要离开搜索字符串%uploads/2012/01/an_image% 没有扩展,因此它可以捕获所有图像(原始图像和缩略图)。

文档:Class_Reference/wpdb.

SO网友:kaiser

最简单的方法应该是wp_attachment_is_image().

if ( ! wp_attachment_is_image( $post_ID ) )
{
    // process needed tasks
}
请注意,这只考虑头为的文件image/* 的扩展\'jpg\', \'jpeg\', \'jpe\', \'gif\', \'png\'.

这没有经过测试

结束

相关推荐

在wp-plugin内部添加jQuery脚本,该脚本接收由此插件内的php-函数生成的JSON格式的数据

我想补充一下Highstock 我的插件中的图表。它需要json格式的输入数据。但我在jQuery中使用默认json解析器时遇到了一些问题。我已经读过了this 文章,但仍然无法理解如何在插件中添加图表。有人能描述一下getJSON() 在wp插件中工作,是否可以将插件中php函数的数据以json格式发送到插件中的jQuery脚本?下面是highstock脚本的示例,我想将其放在我的插件中:$(function() { $.getJSON(\'http://www.highcharts.c