基本的には、私のホームページで (Easy Digital Downloads を使用して) /downloads/ のループを実行しようとしています。カスタム フィールドを各アルバムにアタッチし、それを個別にループしようとしています。これが想像以上に大変でした。いくつかの異なるループ方法を試しましたが、いくつかは他の方法よりもうまく機能しました。私の現在の解決策はとても近いです。
Global $post を使用したり使用したりせずに、さまざまなリセットを試みましたが、もともとは Relationship または Post Object フィールドを使用しようとしていましたが、これはまだやりたいと思っています。私はそれを解決するだろうと考えて、ただのカスタムフィールドデータと交換しましたが、それでも機能しません。
最近、single-download.php に同じコードを貼り付けたところ、問題なく動作しました。WP の読み取り設定を前後に調整し、パーマリンクをリセットしました。ホームページでこのコードを保持しているものは本当に混乱していますか?
これが私の現在のコードです:
<ul class="img-grid-4" id="releases">
<?php //global $post;
$args = array(
'post_type' => 'download',
'posts_per_page' => -1,
'cat' => -8,
'order' => 'ASC',
'paged' => ( get_query_var('page') ? get_query_var('page') : 1 ),
);
$custom_posts = new WP_Query($args);
if ($custom_posts->have_posts()) :
while( $custom_posts->have_posts()) :
$custom_posts->the_post(); ?>
<li>
<a class="hook" href="<?php the_permalink(); ?>">
<h5><?php the_title(); ?></h5>
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail('full', array('class' => 'cover'));
} ?>
</a>
<section class="info">
<h1><?php the_title(); ?></h1>
<span class="close"><i class="icon-close"></i></span>
<h6 class="price">Singles - $0.89 | Album - <?php echo get_post_meta( get_the_ID(), 'edd_price', true ); ?></h6>
<?php if( have_rows('release_singles') ): ?>
<ul class="tracks">
<?php while( have_rows('release_singles') ): the_row();
// vars
$title = get_sub_field('title');
$id = get_sub_field('cart_id');
$link = get_sub_field('sample');
?>
<li>
<a href="" data-src="<?php echo $link; ?>" class="sm2_link">
<?php echo $title; ?>
</a>
<?php echo do_shortcode('[purchase_link class="button icon-cart" id="'. $id .'"]'); ?>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php the_content(); ?>
<a class="button" href="<?php the_permalink(); ?>">See Page</a>
<?php echo do_shortcode('[purchase_link class="button"]'); ?>
<footer class="entry-footer">
<?php szymanskimusic_entry_footer(); ?>
</footer><!-- .entry-footer -->
</section>
</li>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
</ul>
デモサイトへのリンクはこちら: http://szymanskimusic.com/newsite/
最初のアルバム (オレンジ色の顔) をクリックすると、モーダルがポップアップし、アルバム情報とリピーター フィールドのリストが表示されます。タイトルとカート ボタンは正しいですが、曲のリンクをクリックすると、リスト アイテムごとに同じ mp3 が読み込まれて再生されます。
下部にある [ページを表示] ボタンをクリックすると、同じループがあり、正常に動作している単一のページに移動します。
コードもここにあります: https://github.com/szyam/szymanskimusic
front-page-2 は現在私が使用しているもので、methods-tried.php は私が使用しようとしたさまざまなループです。
$('#releases > li').on('click', '.hook', function(e){
var $this = $(this);
$this.removeAttr('href').parent().addClass('live');
var $list = $this.siblings('.info').find('li');
$list.each( function(){
var $src = $(this).children('.sm2_link').data('src');
$('.sm2_link').attr( 'href', $src );
})
soundManager.reboot();
e.preventDefault();
});