• 解決済 saito

    (@paddock-gate)


    マルチサイト環境下でそのプラグインをネットワークで有効化した場合に、全てのブログの記事上下やサイドバー上部に広告が挿入されるようなプラグインを作成したいです。
    記事の上下とは具体的には本文の上下のことです。

    例えばかなり単純ですが、

    function single_ad() {
        echo ' <広告> ';
    }

    のようなプラグインを作成し、single.phpの必要な場所の上下に
    <?php single_ad(); ?>
    と記述すれば可能ですが、プラグインを無効化した場合にエラーが起きてしまいます。

    この手のプラグインは無数にありますが、配信するのは独自の広告で、複数のブログに向かっていいちいち管理画面から設定するのは面倒なので、プラグインのコードを直接書き換える形式で十分です。
    どのコードを利用すればsingle.phpなどに記述せずに広告を挿入することができるのでしょうか?

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • the_contentのフィルターフックがあります。

    function my_content){
     if(is_single()){
      return '上広告'.$content.'下広告';
     }
    }
    add_filter('the_content', 'my_content', 10, 1);

    という風にやれば、本文の上と下に広告を出せそうですが、本当に本文のテキストの上と下に出てしまい、意図された動作なのかどうかはちょっと分かりません。

    トピック投稿者 saito

    (@paddock-gate)

    ありがとうございます。

    function my_content(){
    
     if(is_single()){
      return '上広告'.$content.'下広告';
     }
    }
    add_filter('the_content', 'my_content', 10, 1);

    としてみたところ、本文が表示されなくなってしまいました。

    すいません、引数である$contentが抜けていました。

    function my_content($content){

    add_filterの引数の最後の1は1つの引数を受け取るというパラメータです。
    https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_filter

    広告は表示されたのでしょうか?

    トピック投稿者 saito

    (@paddock-gate)

    ありがとうございます!
    無事に本文・広告ともに表示することができました!

    function my_content($content){
     if(is_single()){
      return '上広告'.$content.'下広告';
     }
    }
    add_filter('the_content', 'my_content', 10, 1);

    ただ、これでは本文を抜粋して表示しているブログ記事一覧ページの本文抜粋部分が表示されなくなってしまうようです…。

    hide

    (@hideokamoto)

    function my_content($content){
     if(is_single()){
      return '上広告'.$content.'下広告';
     }
      return $content;
    }
    add_filter('the_content', 'my_content', 10, 1);

    こうじゃないですか?

    hide

    (@hideokamoto)

    function my_content($content){
     if(is_single()){
      $content = '上広告'.$content.'下広告';
     }
      return $content;
    }
    add_filter('the_content', 'my_content', 10, 1);

    もしくはこっちの方が他のページについてもカスタマイズしたくなったときにいじりやすいかもです。

    トピック投稿者 saito

    (@paddock-gate)

    どんなフィルターをかければいいのか考えてましたが、なるほど、そういうやり方もあるのですね。勉強になりました。
    無事に本文前後に広告を表示させることができました。ありがとうございます!

    記事ページ以外の場合の戻り値 抜けてましたね。
    すいません。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「自動で記事上下に広告を挿入するプラグインを作成したい」には新たに返信することはできません。