我正试图在某种分类法下循环一堆页面。循环部分工作得很好,我得到了我需要的所有页面(很好地包装在WP_Post
个对象中)。
然而,现在我面临着另一种问题。我想在编辑器中包含页面的缩略图。我尝试了get
,the
,thumbnail
,featured
,image
,_
,-
,I的任意组合可以想到,但没有用。
WP_Post
对象相当新, documentation is lacking 。
任何人都可以阐明这个谜团吗?我的目标是最终展示一堆<figure>
元素,包含图像,标题和每个对象的简短描述。
答案 0 :(得分:8)
以下只是短代码形式的概念证明。它会转储包含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;
}
前端的结果:
有精选图片的帖子:
答案 1 :(得分:1)
不确定您想要什么,但如果您想要获取某个页面的所有图像,那么您可以使用
$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
parent
,那么您将在$images
中将所有图像作为数组获取并运行循环
了解更多at Codex。
要获得特色图片,您可以使用
echo get_the_post_thumbnail('page id here', 'thumbnail');
了解更多at Codex。
答案 2 :(得分:0)
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'。