有没有WordPress钩子可以访问特定页面的附件?

时间:2017-03-04 作者:Chris Marshall

我正在编写一个网站,其中包含一个用于格式化特定类型报告的类别。

用户登录并将报告作为博客条目写入。当他们选择类别时,报告将以某种方式格式化。

我正在我的子主题中编辑“single.php”文件(我从WooCommerce mystile)

我想做的是提供一个运行时(显示时间)功能,该功能可以查找仅为此帖子制作的附件,并在帖子底部创建指向这些附件的链接列表。

The Hooks Page 似乎什么都没有,但我肯定有什么。

有人知道RTFM的正确“M”吗?

谢谢

1 个回复
最合适的回答,由SO网友:birgire 整理而成

这里有一种方法,在许多方法中,我们使用the_content 过滤并循环通过get_attached_media( $type ) 构建连接媒体的列表。例如,我们可以使用$type = \'image\' 对于图像或$type = null 对于所有mime类型。

add_filter( \'the_content\', function( $content )
{
    // Nothing to do - target single posts assigned to the \'report\' category 
    if( ! in_the_loop() || ! is_single() || ! has_category( \'report\' ) )      
        return $content;

    // Reduce attached media items into a string
    $li = array_reduce(                           
        get_attached_media( $type = null ),       // Fetch the attached media (all == null)
        function( $li, $item )                    // Callback for each media item
        {
            $li .= sprintf(                       // Construct and append each list item
                \'<li>%s</li>\',
                wp_get_attachment_link( $item->ID, false ) 
            );
            return $li;
        },
        \'\'                                         // Initial value of $li
    );

    // Append to the content
    if( $li )
        $content .= sprintf( \'<ul class="attached-media">%s</ul>\', $li);

    return $content;

}, 999 );                                           // Some late priority
此处,我们仅显示分配给report 类别

相关推荐

Show posts image attachments

我正在为我的照片博客创建一个归档页面。我的帖子有一个或多个图片。我想在一个页面中显示所有附件缩略图。使用特色图像(the\\u post\\u缩略图)仅显示1个缩略图,我想显示所有附加的图像缩略图。<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php $thumbnails = get_posts(\'numberposts=30\'); foreach ($