• 解決済 lau87

    (@lau87)


    下記コードのように投稿記事ループ内で、
    a属性に自動でtitle=記事タイトル、data-gallery=記事ID
    を追加するようにしたいのですが、
    5件記事を表示していると、その中の最新記事の記事タイトルと記事IDが
    5件全てに反映されてしまいます。

    個別にタイトルや記事IDを振り分けるには
    下記コードのどこを修正すればいいでしょうか?

    どなたかご教授をよろしくお願いします。

    <?php if(have_posts()): while(have_posts()):
      the_post(); ?>
    
    <script>
      jQuery(function($) {
        $('.box a').attr('title','<?php the_title(); ?>');
        $('.box a').attr('data-gallery','<?php the_ID(); ?>');
      });
    </script>
    
    <div class="box">
        <?php the_content(); ?>
    </div>
    
    <?php endwhile; endif; ?>
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • Nora

    (@nora0123456789)

    ループ内にJavaScriptを書くと、ヘッダーに出力しない限りjQueryが定義されないと思いますので、直接書くのであれば、フッターやjQueryの後に出力する方が確実だと思います。

    それよりもワードプレスのフィルターを使ってみてはどうでしょうか?

    add_filter( 'the_content', 'your_filter' );
    function your_filter( $the_content ) {
    
      // preg_matchなどで編集
    
      return $the_content; // 編集後のコンテンツ
    }
    トピック投稿者 lau87

    (@lau87)

    ご返信、ありがとうございます。
    下記コードでは、画面が真っ白になるのですが
    不備を教えていただけますと幸いです。。

    add_filter( 'the_content', 'your_filter' );
    function your_filter( $the_content ) {
        $('.box a').attr('title','<?php the_title(); ?>');
        $('.box a').attr('data-gallery','<?php the_ID(); ?>');
      return $the_content;
    }
    トピック投稿者 lau87

    (@lau87)

    フィルターの仕組みをよく考えて、自己解決しました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「a属性のtitleにや記事IDを追加する方法」には新たに返信することはできません。