作者页面上的Get_Attach_Media()不起作用

时间:2016-11-19 作者:user87064

我有一个很烦人的简单问题。

我可以使用get_attached_media() 在分类页面上获取自定义帖子的附加媒体。

function author_loop() {

    $post = get_the_ID();

    // Where the problem lies, only on author pages. get_attached_media returns nothing.
    $attach = get_attached_media( \'application/pdf\', $post );
    $attach = current( $attach );

    $attach_url = wp_get_attachment_url( $attach );

    printf( \'<a href="%s">%s</a>\', $attach_url, get_the_title() );

}
但是,当我在作者页面上使用完全相同的函数时,返回的是一个空数组。

我花了很长时间想弄清楚原因,但运气不好。

分类法页面和作者页面的循环中的所有内容都表现良好,除了查找用于发布的附加媒体。

请帮忙。

1 个回复
SO网友:kaiser

我假设您对该函数的实际功能和用途有一个简单的误解:get_attached_media() 只需获取给定帖子的所有子帖子:

if ( ! $post = get_post( $post ) )
    return array();

$args = array(
    \'post_parent\'    => $post->ID,
    \'post_type\'      => \'attachment\',
    \'post_mime_type\' => $type,
    \'posts_per_page\' => -1,
    \'orderby\'        => \'menu_order\',
    \'order\'          => \'ASC\',
);
发件人Codex:

检索连接到传递的帖子的媒体。使用get_children().

如果您在作者存档中使用此选项,则可以使用$GLOBALS[\'wpdb\']->get_queried_object() 或者只是get_queried_object(). 再次从Codex页面:

如果您使用的是author归档,它将返回author对象

现在,默认的作者是WP_User 而不是post 可以有子对象的对象。要检索作者附加到帖子的所有媒体,您必须循环浏览作者的帖子,然后使用$media = get_attached_media( get_the_ID() );.

相关推荐

GraphQL:无法查询(其中:{Author})自定义帖子类型

我已经创建了一个自定义职位类型(jobPosts)<我正在使用Gatsby/Graphql/Apollo查询和修改数据。Problem: 我需要从Wordpress中为特定用户获取职位。我想按“author”查询JobPost,但Graphiql界面没有给我使用“where”和“author”的选项(在方案中不存在吗?):所需查询:`{ query getJobs($userId: Int!) { jobPosts (where: {author: $user