好的,以下是我在类别和标签页面上的代码。它显示了给定类别或标签中最近8个帖子的所有附件。因此,如果我在“汽车”类别页面上,它只显示被归类为“汽车”的帖子中的照片。那部分效果很好。
我想要做的就是这样做,即使该类别中有多个帖子,如果这些帖子都没有附件,也会回复一些类似“抱歉没有照片”的内容。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$args = array( 'post_type' => 'attachment', 'numberposts' => 8, 'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
if ($attachments) {
foreach ( $attachments as $attachment ) {
echo '<li>';
the_attachment_link( $attachment->ID , false );
echo '</li>';
}
}
?> <?php endwhile; ?>
<?php endif; ?>
我尝试添加一个else语句,如下所示:
<?php endwhile; else: ?>
<p>sorry no photos here</p>
<?php endif; ?>
但是,如果一个帖子有一张照片但另一个没有,那么它会显示一张照片,但它也会回显else语句。
唷!很长的解释。这不是生死,但是我花了很多时间在它上面无济于事,我可能比它应该更多地被它所掩盖。 :/
提前致谢!
Wordpress来源:http://codex.wordpress.org/Template_Tags/get_posts#Show_all_attachments
答案 0 :(得分:0)
你的其他地方在错误的地方,它作为另外一个条件在have_posts()上你需要它作为if($ attachments)的其他条件,如下:
if ($attachments) {
foreach ( $attachments as $attachment ) {
echo '<li>';
the_attachment_link( $attachment->ID , false );
echo '</li>';
}
}
else
{
echo "sorry no photos here";
}
如果不起作用,请尝试:
if (count($attachments)>0) {
foreach ( $attachments as $attachment ) {
echo '<li>';
the_attachment_link( $attachment->ID , false );
echo '</li>';
}
}
else
{
echo "sorry no photos here";
}
答案 1 :(得分:0)
对不起,我工作的电力消失了......
所以我这样做了:
if ($attachments) {
var_dump($attachments);
foreach ( $attachments as $attachment ) {
echo '<li>';
the_attachment_link( $attachment->ID , false );
echo '</li>';
}
}
else
{
echo "sorry no photos here";
}
并得到了这个:
NULL array(1){[0] =&gt; object(stdClass)#567(32){[“ID”] =&gt; int(65)[“post_author”] =&gt; string(1)“1”[“post_date”] =&gt; string(19)“2011-03-24 03:50:31”[“post_date_gmt”] =&gt; string(19)“2011-03-24 10:50:31”[“post_content”] =&gt; string(0)“”[“post_title”] =&gt; string(7)“Joe Ahn”[“show_in_menu”] =&gt; string(1)“1”[“link_link”] =&gt; string(1)“1”[“no_follow_link”] =&gt; string(1)“0”[“alt_link_text”] =&gt; NULL [“custom_link_class”] =&gt; NULL [“redirect_url”] =&gt; NULL [“target_blank”] =&gt; string(1)“0”[“alt_title_attribute”] =&gt; NULL [“post_excerpt”] =&gt; string(0)“”[“post_status”] =&gt; string(7)“inherit”[“comment_status”] =&gt; string(4)“open”[“ping_status”] =&gt; string(4)“open”[“post_password”] =&gt; string(0)“”[“post_name”] =&gt; string(3)“ahn”[“to_ping”] =&gt; string(0)“”[“pinged”] =&gt; string(0)“”[“post_modified”] =&gt; string(19)“2011-03-24 03:50:31”[“post_modified_gmt”] =&gt; string(19)“2011-03-24 10:50:31”[“post_content_filtered”] =&gt; string(0)“”[“post_parent”] =&gt; int(64)[“guid”] =&gt; string(66)“http://www.ouhsd.k12.ca.us/news/wp-content/uploads/2011/03/ahn.jpg”[“menu_order”] =&gt; int(0)[“post_type”] =&gt; string(10)“attachment”[“post_mime_type”] =&gt; string(10)“image / jpeg”[“comment_count”] =&gt; string(1)“0”[“filter”] =&gt; string(3)“raw”}}