Как получить расширение mp3-файла из канала iTunes и отобразить его в цикле WP?

Я хочу извлечь 5 самых последних подкастов из канала iTunes и опубликовать их вместе со звуком на странице WP.

Код, который у меня есть, ниже, он вытягивает ленту и отображает имя, детали и т. д., но использует один и тот же звук подкаста для каждого элемента.

                    <div class="podcastfeed">
                    <h4>Recent Podcasts</h4>

                    <?php // Get $feed Feed(s)



                        include_once( ABSPATH . WPINC . '/feed.php' );  
                        $hpFeed=get_post_meta($post->ID, "cmb_hp_feed", true);                          
                        $feed = fetch_feed( $hpFeed );
                        $feed->init();
                        $feed->handle_content_type();
                        foreach ($feed->get_items() as $item)
                        {
                            if ($enclosure = $item->get_enclosure())
                            {
                                 $enclosure->get_link();
                            }
                        }                           
                        if ( ! is_wp_error( $feed ) ) : // Checks that the object is created correctly
                            // Figure out how many total items there are, but limit it to 5.
                            $maxitems = $feed->get_item_quantity( 5 );
                            // Build an array of all the items, starting with element 0 (first element).
                            $feed_items = $feed->get_items( 0, $maxitems );
                        endif;

                                        $attr = array(
                                            'src'      => $enclosure->get_link(),
                                            'loop'     => '',
                                            'autoplay' => '',
                                            'preload' => 'none'
                                            );                          
                    ?> 
                    <ol>
                        <?php if ( $maxitems == 0 ) : ?>
                            <li><?php _e( 'No items', 'my-text-domain' ); ?></li>
                        <?php else : ?>
                            <?php // Loop through each feed item and display each item as a hyperlink. ?>
                            <?php foreach ( $feed_items as $item ) : ?>
                                <li> 
                                    <a href="<?php echo esc_url( $item->get_permalink() ); ?>"
                                        title="<?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('F j, Y') ); ?>">
                                        <p>
                                            <span>
                                                <?php echo esc_html( $item->get_title() ); ?>  
                                            </span>
                                            <span><?php printf( __( '%s', 'my-text-domain' ), $item->get_date('F j, Y') ); ?></span>
                                        </p>
                                    </a>
                                     <?php echo wp_audio_shortcode( $attr );?> 

                                </li>
                            <?php endforeach; ?>
                        <?php endif; ?>
                    </ol>
                </div>

person user3181912    schedule 08.03.2014    source источник


Ответы (1)


В итоге у меня все заработало, хотя пришлось немного повозиться

Страница теперь отображает каждый из подкастов как аудио.

                    <div class="podcastfeed">


                        <?php // Get $feed Feed(s)
                            include_once( ABSPATH . WPINC . '/feed.php' );
                             $hpFeed=get_post_meta($post->ID, "cmb_hp_feed", true);
                            // Get a SimplePie feed object from the specified feed source.
                            $rss = fetch_feed( $hpFeed );
                            if ( ! is_wp_error( $rss ) ) : // Checks that the object is created correctly
                                // Figure out how many total items there are, but limit it to 5.
                                $maxitems = $rss->get_item_quantity( 5 );
                                // Build an array of all the items, starting with element 0 (first element).
                                $rss_items = $rss->get_items( 0, $maxitems );
                            endif;
                        ?> 
                        <?php if ( $maxitems == 0 ) : ?>
                            <ol style="display:none;"><?php _e( 'No items', 'my-text-domain' ); ?></ol>                     

                        <?php else : ?>
                            <h4>Recent Podcasts</h4>
                            <ol>
                            <?php // Loop through each feed item and display each item as a hyperlink. ?>
                            <?php foreach ( $rss_items as $item ) : ?>

                                <li> 
                                    <a href="<?php echo esc_url( $item->get_permalink() ); ?>"
                                        title="<?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('F j, Y') ); ?>">
                                        <p>
                                            <span>
                                                <?php echo esc_html( $item->get_title() ); ?>  
                                            </span>
                                            <span>
                                                <?php printf( __( '%s', 'my-text-domain' ), $item->get_date('F j, Y') ); ?>
                                            </span>
                                        </p>
                                    </a>
                                    <?php 
                                            if ($enclosure = $item->get_enclosure()){
                                                  $enclosure->get_link();
                                            }

                                    ?>                                      
                                    <?php 
                                            $attr = array(
                                            'src'      => $enclosure->get_link(),
                                            'loop'     => '',
                                            'autoplay' => '',
                                            'preload' => 'none'
                                            );  
                                    ?>

                                    <?php echo wp_audio_shortcode( $attr );?> 
                                </li>
                            <?php endforeach; ?>
                        <?php endif; ?>
                    </ol>
                </div>
person user3181912    schedule 09.03.2014