我目前已配置Wordpress,以便将帖子复制到Wordpress网络中的其他站点。然而,一篇帖子可能会被广播不止一次,我想检查一下图片是否已经发布到该网站的wp_posts
桌子
例如,假设图像具有图像路径:
/wp-content/uploads/2012/01/an_image.jpg
所有图像都由网络存储在此文件夹设置中(而不是默认设置
/blogs.dir/files/
).
换句话说,Wordpress是否可以查询数据库以检查表中是否已经存在该数据库,或者是否需要将其编写为PHP数据库查询?
最合适的回答,由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.