wordpress get_children不反映对图像库的编辑

时间:2014-06-30 23:52:47

标签: wordpress

我有一个非常简单的主题,使用get_children()函数检索每个帖子的所有图库链接。 不幸的是,存在一些奇怪的错误 - 首先,如果在创建帖子时没有上传图像而是从媒体库中选择图像,则它们在发布后不会显示。此外,如果我在创建帖子后进行任何编辑,无论是重新排序图像,添加新图像,删除图像,甚至删除整个图库还是创建新图片,它们都不会显示。刷新浏览器缓存不起作用。

如果我更改为其中一个基本主题,则会显示图像,并且在直接查询数据库时会显示正确的链接。

我在一个文件微主题中复制了基本的有问题的代码,但问题仍然存在:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php echo $post->id; 
$args = array(
                  'numberposts'     => -1,
                  'order_by'        => 'menu_order',
                  'order'           => 'ASC',
                  'post_mime_type'  => 'image',
                  'post_parent'     => $post->ID,
                  'post_status'     => inherit,
                  'post_type'       => 'attachment'
                );
$images = get_children($args); 
if ( empty($images)){
echo "nothing";
}
foreach ( $images as $id => $image ) :
echo $image->post_title;
endforeach;
?>
<?php endwhile; ?>
<?php endif; ?>

我很难过,我尝试使用不同的功能来检索具有相同结果的帖子,停用所有插件,什么都没有。 我正在测试OSX mavericks和Ubuntu vps,它是否可能是某些数据库缓存的东西我应该在某处冲洗?

1 个答案:

答案 0 :(得分:1)

设置'post_parent' => $post->ID,时,您只能获得该页面的附件。这部分原因并非所有图像都显示出来。

但更大的问题是,画廊的处理方式与帖子/页面/附件不同。库只存在于短代码中 - 它们不存储在数据库中 - 因此您无法使用get_postsget_children查询它们。

要自定义呈现图库的方式,您必须先插入创建图库的wordpress代码,或取消注册该功能并编写自己的功能。

This question回答了如何编写插件时如何操作短代码 - 但该过程与主题相同。

: - )