【问题标题】:Wordpress: get_attached_media('image') sorted by titleWordpress:按标题排序的 get_attached_media('image')
【发布时间】:2015-03-12 16:02:26
【问题描述】:

我想获取附加到特定帖子的所有图像。这适用于:

$media = get_attached_media('image');

我现在需要的是按标题对这些图像进行排序。我已经可以生成数组中的标题列表:

for ($i = 0; $i < count($media); $i++) {
  get_the_title(array_keys($media)[$i])
}

我不知道如何按标题排序。有人可以帮忙吗?

【问题讨论】:

    标签: php arrays wordpress sorting


    【解决方案1】:

    获取已排序的附件而不是排序结果数组会更好,对吗?这将为您节省代码、麻烦和处理。

    如果您查看 WP Codex,get_attached_media() 调用 get_children(),后者调用 get_posts()(是的,升级很快)。在 WordPress 中,附件(以及几乎所有内容)本质上是 post

    考虑到所有这些,这应该会为您获取附加到按标题排序的帖子的图片列表

    $media = get_posts(array(
        'post_parent' => get_the_ID(),
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'orderby' => 'title',
        'order' => 'ASC'
    ));
    

    编辑:正如ViszinisAPieter Goosen 所指出的,我直接将调用改为get_posts()。打电话给get_children() 毫无意义。

    注意: 'post_parent' 参数是必需的,所以我使用 get_the_ID() 添加它作为它的值。请记住,您需要在循环中get_the_ID() 检索当前帖子 ID。在循环外使用时,应根据上下文更改此参数值。

    【讨论】:

    • 那为什么不直接调用 get_posts() 呢?
    • ordeby 应该是 title,而不是 post_title
    • 非常感谢,这很简单,我喜欢立即调用基本功能。它提供了更多的控制权!
    • 一件被忽略的小事...... Sebastian 首先说“我想将所有图片附加到特定帖子中。”所以你也想把它添加到上面的数组中。 post_per_page' => -1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2018-12-12
    • 2014-03-09
    • 2014-10-12
    相关资源
    最近更新 更多