サポート » マルチサイト » bbpressのトピックにアドセンスのインフィード広告を表示したい

  • 解決済 katameslim

    (@katameslim)


    タイトルの通りなのですが
    bbpressのトピックページでリプライ間にアドセンスのインフィード広告を表示したいと思っています
    https://ps.w.org/bbpress-simple-advert-units/assets/screenshot-1.png?rev=697003
    画像のような形での挿入が希望です
    フォーラム一覧やトピック一覧のページでは下記のようにループに$count++;を加えることでうまく行っているのですが該当部分だけ思い当たる部分全てに同様の記述をしても表示できません
    loop-forums.phpでは下記
    <?php while ( bbp_forums() ) : bbp_the_forum(); $count++; ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); $count++; ?>
    <?php if ($count == 4): ?>
    (インフィード広告用コード)
    <?php elseif ($count == 8): ?>
    (インフィード広告用コード)
    <?php endif; ?>

    loop-topics.phpでは下記
    <?php while ( bbp_topics() ) : bbp_the_topic(); $count++;?>
    <?php if ($count == 4): ?>
    (インフィード広告用コード)
    <?php elseif ($count == 8): ?>
    (インフィード広告用コード)
    を追加しています。

    恐らくloop-replies.phpのページが該当の箇所になると思うのですが、同じコードを試しても何も表示されません
    同じようにループをカウントして出力というようにしたいのですが、どこを書き換えれば良いでしょうか?
    詳しい方ご教示願えましたら幸いです

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • CG

    (@du-bist-der-lenz)

    前提として、インフィード広告以外、または広告以外は表示されていますね。

    • この返信は6年、 3ヶ月前にCGが編集しました。

    コードを書くときはcodeを押してバッククォートで囲ってください。
    4つ目と8つ目に広告を表示するという形でしょうか?

    loop-replies.phpのこの部分を

    			<?php while ( bbp_replies() ) : bbp_the_reply(); ?>
    
    				<?php bbp_get_template_part( 'loop', 'single-reply' ); ?>
    
    			<?php endwhile; ?>

    以下のように変更したらどうですか?

    			<?php $count = 1;
    				while ( bbp_replies() ) : bbp_the_reply();
    					bbp_get_template_part( 'loop', 'single-reply' );
    				if ($count == 4 || $count == 8 ): ?>
    					(インフィード広告用コード)
    			<?php endif; $count ++; endwhile; ?>
    トピック投稿者 katameslim

    (@katameslim)

    >>CG様
    コードを追加した場合でも広告以外は問題なく表示されています

    トピック投稿者 katameslim

    (@katameslim)

    >>manbo様
    コードありがとうございます
    ご指摘の通りに変更してみたのですが、パンくずリストのみ表示され、真っ白になってしまいました

    編集したテンプレートは合ってますか?
    編集したテンプレートのコードを張り付けて貰えますか?
    コードはcodeを押してバッククォートで囲ってください。

    トピック投稿者 katameslim

    (@katameslim)

    <?php
    
    /**
     * Replies Loop
     *
     * @package bbPress
     * @subpackage Theme
     */
    
    ?>
    
    <?php do_action( 'bbp_template_before_replies_loop' ); ?>
    
    <ul id="topic-<?php bbp_topic_id(); ?>-replies" class="forums bbp-replies">
    
    	<li class="bbp-header">
    
    		<div class="bbp-reply-author"><?php  _e( 'Author',  'bbpress' ); ?></div><!-- .bbp-reply-author -->
    
    		<div class="bbp-reply-content">
    
    			<?php if ( !bbp_show_lead_topic() ) : ?>
    
    				<?php _e( 'Posts', 'bbpress' ); ?>
    
    				<?php bbp_topic_subscription_link(); ?>
    
    				<?php bbp_user_favorites_link(); ?>
    
    			<?php else : ?>
    
    				<?php _e( 'Replies', 'bbpress' ); ?>
    
    			<?php endif; ?>
    
    		</div><!-- .bbp-reply-content -->
    
    	</li><!-- .bbp-header -->
    
    	<li class="bbp-body">
    
    		<?php if ( bbp_thread_replies() ) : ?>
    
    			<?php bbp_list_replies(); ?>
    
    		<?php else : ?>
    
    			<?php $count = 1;
    				while ( bbp_replies() ) : bbp_the_reply();
    					bbp_get_template_part( 'loop', 'single-reply' );
    				if ($count == 4 || $count == 8 ): ?>
    					<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <ins class="adsbygoogle"
         style="display:block; text-align:center;"
         data-ad-layout="in-article"
         data-ad-format="fluid"
         data-ad-client="ca-pub-xxxxxxx"
         data-ad-slot="xxxxxxx"></ins>
    <script>
         (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    			<?php endif; $count ++; endwhile; ?>
    			
    		<?php endif; ?>
    
    	</li><!-- .bbp-body -->
    
    	<li class="bbp-footer">
    
    		<div class="bbp-reply-author"><?php  _e( 'Author',  'bbpress' ); ?></div>
    
    		<div class="bbp-reply-content">
    
    			<?php if ( !bbp_show_lead_topic() ) : ?>
    
    				<?php _e( 'Posts', 'bbpress' ); ?>
    
    			<?php else : ?>
    
    				<?php _e( 'Replies', 'bbpress' ); ?>
    
    			<?php endif; ?>
    
    		</div><!-- .bbp-reply-content -->
    
    	</li><!-- .bbp-footer -->
    
    </ul><!-- #topic-<?php bbp_topic_id(); ?>-replies -->
    
    <?php do_action( 'bbp_template_after_replies_loop' ); ?>
    

    こちらテンプレート内の全コードです

    トピック投稿者 katameslim

    (@katameslim)

    連投すみません
    先ほどbbpressのフォルダ内にデフォルトのテンプレートを戻し
    テーマフォルダ直下にコードを追加したテンプレートを置いてみたところ、ページは問題なく表示されました
    しかし相変わらず広告は表示されない状態です。
    単にアドセンスの反映が遅いという現象も疑ってみましたが、該当部分に空白などもありませんので、違うと思います。

    編集された内容自体は問題無いようですね。
    こちらの環境では真っ白になるようなことはないです。
    要はこういうことですよね?
    https://i.imgur.com/XdqbwxB.jpg

    ちなみに、最近アドセンスとか触ってないので忘れましたが<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>はループの外で良いと思います。
    <ins class="adsbygoogle"~</ins>も多分一回読み込めば良いんじゃないかと思いますが。

    と打ち込んでたらコメントが入ってましたが、そのまま投稿します。
    表示されない原因も書いてました。

    トピック投稿者 katameslim

    (@katameslim)

    まさに画像のような表示を目指しています
    先ほどアドセンスコードの一部をループ外に書き換えたのですが、変わらずでした
    試しに文字列を出力してみたのですが、これも表示されなかったので
    やはり別の問題でループがカウントされていないのかもしれません

    そうですね。
    まず、広告の前に文字列を正しく出力できることが確認されなければ先に進まないですね。
    とりあえずデバッグモードでエラーが出ていないか確認してみてください。

    トピック投稿者 katameslim

    (@katameslim)

    ようやく解決しました
    単純にbbpressの設定画面で
    返信スレッドのルール~返信を〇階層までのスレッド (入れ子) 形式にする
    のチェックを外しただけです。
    入れ子にしている場合はなんらかの処理があるみたいですね。
    原因は全く分かりませんが、とりあえず解決しました
    manboさま、お付き合いいただき本当にありがとうございました

    解決したなら解決済みにしておいてください。
    あと、過去の質問も解決済なら同様に。

    トピック投稿者 katameslim

    (@katameslim)

    ありがとうございました

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • トピック「bbpressのトピックにアドセンスのインフィード広告を表示したい」には新たに返信することはできません。