媒体库类别排除树

时间:2017-07-23 作者:Josh Rodgers

我有一些从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不在排除列表中。

有人能给我指出正确的方向吗?

谢谢,乔希

2 个回复
最合适的回答,由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 } ?>
这是一个很好的解决方案,因为它具有我正在寻找的行为,如果我不想包含一个类别,那么我不会将其作为“图片”的子类别,也不会显示它。

谢谢,乔希

SO网友:p1erstef

我认为你应该使用“包含的类别”,而不是试图使用“排除的类别”。

一种解决方案是:

创建要排除的类别的数组创建所有类别的数组使用“array\\u diff”构建要包含的类别的数组,或者您可以使用wordpress函数“get\\u terms”创建要包含的类别的列表。

希望这有帮助

结束

相关推荐

在插件的所有文件中使用wp-config.php常量

我有一个wordress插件。它有2个文件1.索引。php(插件的主文件,我们在其中定义插件名称、描述和全部)2.更新\\u db\\u cron。php(我使用这个文件在12.00使用cron job每日更新数据库)我可以在索引中使用数据库常量(在wp config.php中定义)。php,但不能在update\\u db\\u cron中使用它们。php。我应该包括wp配置吗。或者在该文件中定义数据库常量,或者有其他更好的解决方案