我有一些从WordPress媒体库返回最新5幅图像的代码:
<?php
$excluded = array(1,35,37);
$args = array(
\'post_type\' => \'attachment\',
\'numberposts\' => \'5\',
\'category__not_in\' => $excluded
);
$images = get_posts($args);
if (!empty($images)) {
?>
<div class="wrap">
<h5><span>Recently</span> Added</h5>
<ul>
<?php
foreach ($images as $image) {
$attachment_link = get_attachment_link( $image->ID );
echo "<li><a href=\'".$attachment_link."\'>".wp_get_attachment_image($image->ID)."</a></li>";
}
?>
</ul>
</div>
<?php } ?>
我排除了一些我不想显示的类别(1,35,37)。这是可行的,但有时除了排除的类别之外,我还分配了多个类别。。。如果选择了类别1,并且选择了类别15,则不会显示图像,因为选择了类别1。
我想做的是,只有当这些类别是自己选择的时候,才排除这些类别。如果选择了其他未排除的类别,则应显示。因此,选择了类别1和类别12的图像仍应显示,因为类别12不在排除列表中。
有人能给我指出正确的方向吗?
谢谢,乔希
最合适的回答,由SO网友:Josh Rodgers 整理而成
这最终解决了问题p1erstef
建议将类别包括在内,而不是将其排除在外。
我最终创建了一个名为“图片”的新类别,我将所有其他子类别都设置为“图片”,这意味着我的代码变得更加简单:
<?php
$args = array(
\'post_type\' => \'attachment\',
\'numberposts\' => \'5\',
\'category_name\' => \'pictures\'
);
$images = get_posts($args);
if (!empty($images)) {
?>
<div class="wrap">
<h5><span>Recently</span> Added</h5>
<ul>
<?php
foreach ($images as $image) {
$attachment_link = get_attachment_link( $image->ID );
echo "<li><a href=\'".$attachment_link."\'>".wp_get_attachment_image($image->ID)."</a></li>";
}
?>
</ul>
</div>
<?php } ?>
这是一个很好的解决方案,因为它具有我正在寻找的行为,如果我不想包含一个类别,那么我不会将其作为“图片”的子类别,也不会显示它。
谢谢,乔希