投稿本文中ウィジェットをh2ではなくmoreタグの部分に挿入したい

Simplicityの特徴 フォーラム テーマファイルのカスタマイズに関する質問など 投稿本文中ウィジェットをh2ではなくmoreタグの部分に挿入したい

このトピックには7件の返信が含まれ、2人の参加者がいます。3 年、 1 ヶ月前 よしだ さんが最後の更新を行いました。

  • 投稿者
    投稿
  • #45101

    よしだ

    投稿本文中ウィジェットの指定をに変更するには

    上記の投稿を参考にlib/ad.phpを変更しましたが、moreタグの部分には何も挿入されませんでした。テーマ・Wordpressのバージョンが変わったことが原因でしょうか?

    何か良い方法があればご教示ください。よろしくお願いいたします。

    (テーマのバージョンは2.2.9d、Wordpressは4.6.1です。)

  • #45103

    hidekichi

    カスタマイザーの広告の設定で、広告の位置がサイドバートップになっていると言うことはありませんか?

    元々のスクリプトはおそらくですが、h2手前に表示していたものをmoreタグ手前にするものだったように思います。
    h2手前にした上でサイドバーにも広告が必要な場合は、広告ウィジェットをサイドバーに入れて利用するなどの方法でやるなどの必要が出てきますが、まずはこの辺りを確認してみてください。

    で、できればカスタマイザーの設定が今どうなっているか、広告はどれで、どのウィジェットに入れてどこに表示しているか等の情報を書いておいてもらうと再現するのに助かります。

    質問の内容からだけではここらがどうなっているかは全くわからないため、可能性を一つずつ潰していく他ありませんので。

  • #45104

    よしだ

    情報が不十分で申し訳ありません。

    カスタマイザーの広告位置は「本文記事中」に設定されています。もちろん、「全ての広告を表示」にはチェックが入っています。「トップページに広告を表示する」「広告を中央表示」「PC表示のダブルレクタングルを縦型に」「パフォーマンス追求広告の表示」にチェックは入っていません。
    ウィジェットについては「[s]パソコン用広告ウィジェット」「[s]モバイル用広告ウィジェット」が「投稿本文中」に入っています。

    lib/ad.phpを変更しなければ、h2の前に正しく広告が表示されます。

    現在の状況は上記の通りです。不明点があれば再度確認しますので、よろしくお願いします。

  • #45105

    hidekichi

    トップのリストアイテムの表示はどのようになっていますか?

    moreタグはトップのリストで、本文表示のリスト表示形式を選んだような場合に、moreタグを入れた任意の位置で区切って「続きを読む」を挿入し、その後ろの内容を非表示にします。この続きを読むはクリックすると記事(本体)が表示される仕組みです。

    投稿記事本体にmoreタグが入っていても、すでに記事全文(つまりは本体)が表示されていますから「続きを読む」は表示されないと思うんですよ。

    もしこれが表示されると言うことは、トップページでmoreタグ部分まで表示され、記事本体が表示された所でまた続きを読むが表示されることになり、記事本体に行くまでに1クッション多くなりますよね?
    で、表示されたものにまたmoreタグがあるので…と永久に本体が表示されなかったり(笑)
    そんなことがないように、記事本体のときにはmoreタグはそれ自体が表示されないわけです。

    moreタグがなければ広告も挿入されませんから、moreタグ手前に表示したい時の条件としては、トップのリストが本文表示、あるいは最初だけ本文表示などにする必要があるのではなかろうかと思います。
    そのあたりの設定はどうなっていますか?

  • #45106

    よしだ

    トップのリストアイテムは「本文表示」に設定しております。

    こちらでも色々と模索してみます。

  • #45110

    hidekichi

    試してみましたが、確かに動作しませんね。まぁmoreタグが実体化(リンク化)されているので、<!--more-->は効かないようにも思います。

    で、本文表示のリストの場合、各リストアイテムに#the-contentがあるため、最初の#the-contentだけを拾えたら置換もできますが、the_contentのフィルターでは、リストアイテムにある#the-content全てのmoreタグ部分に広告が入ってしまいうまく動作しないようにも思います。
    同様にして、最初のmore_link_html等を置換できればフィルターフック等でもできると思います。最初の要素だけを拾うと言うのがいまいちよくわからないので、ここらは調べる必要がありますが、誰かご存じの方はレスお願いします。

    最初だけ本文ならいざ知らず、全てが本文表示+moreの場合は挿入する広告コード部分にclassでもつけて、cssで表示とかしないといけないかもしれません。

    で、まぁphpは面倒くさいのでjQueryでサックリとしてみてはどうかと思った次第です。

    サンプル: トップリスト本文表示の最初のmoreタグのリンクの手前に広告を入れる | jsFiddle

    レクタングル2つと広告を一つを入れる場合を考えて2つ入れる場合と、1つの場合と合わせて書いてあります。また広告コードはレスポンシブ広告のコードが元になってます。
    必要で無い方をコメントアウトしてください。また、サンプルを参考に色々いじってみてください。

    ただ、Googleが前に記事中の広告は評価を下げるみたいな事を言っていたので、使うかどうかは自己責任で。
    インデックスリストトップかミドルあたりに広告ウィジェットを入れるのが妥当かとは思うんですけどもね。

  • #45120
    わいひら
    わいひら
    キーマスター

    moreタグが挿入されているのであれば、以下のようなカスタマイズでもいけると思うのですがいかがでしょうか。
    WordPress投稿本文中のmoreタグをアドセンス等広告に置換する方法

  • #45131

    よしだ

    ご助言いただきありがとうございます。

    moreタグ部分には「<p><span id=”more-*”></span></p>」という空タグが挿入されることから、以下のような正規表現にしてみたところ、期待通りmoreタグ部分に広告がされるようになりました。

    define('H2_REG', '#<p><span id="more-\d+"></span></p>#i');

    hidekichi様、わいひら様、お手数をお掛けして申し訳ありませんでした。ありがとうございます。

トピック「投稿本文中ウィジェットをh2ではなくmoreタグの部分に挿入したい」への新規返信追加は締め切られています。

スポンサーリンク
アドセンス(大)
アドセンス(大)