我正在尝试在某个分类下循环一堆页面。循环部分效果很好,我得到了我需要的所有页面(很好地包裹在WP_Post
对象中)。
但是,现在我面临着另一种问题。我想包含在编辑器中设置的页面缩略图。我试过任何我能想到的 , , , , , ,的组合get
,但无济于事。the
thumbnail
featured
image
_
-
该WP_Post
对象相当新,并且缺乏文档。
谁能解开这个谜团?我的目标是最终显示一堆<figure>
元素,包括图像、标题和每个对象的简短描述。
以下只是简码形式的概念证明。它会转储一个代码块,其中包含所有具有Featured Image的帖子。
函数参考:has_post_thumbnail
,get_the_post_thumbnail
add_shortcode( 'all-post-thumbs', 'so_14007170_dump_post_thumbs' );
function so_14007170_dump_post_thumbs( $atts, $content )
{
// Query
$posts = get_posts( array(
'post_type' => 'post',
'numberposts' => -1,
'post_status' => 'publish'
) );
// Build an array of post thumbnails
$thumbs = array();
foreach( $posts as $post)
{
if( has_post_thumbnail( $post->ID) )
$thumbs[] = array( $post->post_title, htmlentities(get_the_post_thumbnail( $post->ID ) ) );
}
// Build output and return
$echo = '<pre>'. print_r( $thumbs, true ) . '</pre>';
return $echo;
}
前端结果:
带有特色图片的帖子:
不知道你想要什么,但如果你想获取某个页面的所有图像,那么你可以使用
$parent='your page id';
$args=array(
'post_parent' => $parent,
'post_type' => 'attachment',
'post_mime_type' => 'image',
'orderby' => 'menu_order',
'order' => 'ASC',
'numberposts' => -1
);
$images = get_children($args);
您可以将此代码粘贴到循环中,如果您提供适当page_id
的 asparent
那么您将在 中以数组形式获取所有图像,$images
并且可以运行循环。
在 Codex阅读更多信息。
要仅获取您可以使用的特色图片
echo get_the_post_thumbnail('page id here', 'thumbnail');
在 Codex阅读更多信息。
if ( have_posts() ) : while ( have_posts() ) : the_post();
// stuff before thumbnail
$thumbnail_args = array();
// insert whatever thumbnail args you want
echo get_the_post_thumbnail();
// stuff after thumbnail
endwhile; else:
echo "<h2>Sorry, nothing to see here.</h2>";
endif
不幸的是,WP_Post 方法的命名非常糟糕。大多数与 Post 交互的方法都需要添加一些 '_' 和 'post' 的排列。