自作WordPressテーマをウィジェットに対応させてステマ規制対応をする方法

当サイトの記事にはアフィリエイト広告やプロモーションを含む場合があります。

2023年10月から関連法規の改正によりステマ規制が厳しくなりました。

ブログも例外ではなく、記事にアフィリエイトリンクやプロモーションを含む場合はその旨を分かりやすいところに表示しなければなりません。

ではどこなら分かりやすいと言えるのか、など詳細は他の記事に譲るとしまして・・・この記事の背景と趣旨をまとめます。

  • WordPressブログの記事ひとつひとつのタイトル下にPR表示をしたい
  • でも全部の記事にテキストを入れるのは大変だ
  • ならば、WordPressテーマ側で一括で対応できないか

正直なところ、これだけであれば検索するとすでに記事がたくさん書かれておりウィジェットを使うという答えも出ているのですが、自作テーマを使っている場合はここで問題が発生します。

そう、自作テーマがウィジェットに対応していないという問題が。

あるいは、サードパーティー製のテーマを使っていても、ウィジェットに対応していないなんてことも稀にあるかもしれません。または、ウィジェットはあるけどタイトル下への配置が無い、なんてこともあるでしょう。

そこで、この記事ではWordPressテーマをタイトル下のウィジェットに対応させて、そこにPR表示を挿入する、までをできるようにしてみます。

大まかな手順

手順としては、

1. ウィジェットを用意する
2. ウィジェットを配置する 
3. ウィジェットの中身を設定する

となります。個人的にはWordPressのウィジェットは箱と考えるとわかりやすい気がします。上の手順の「ウィジェット」を「箱」に置き換えてみるとスッと入ってきませんか?

1. ウィジェットを用意する

まずは、ウィジェットという「箱」自体を用意します。

WordPressメニューの「外観」から「テーマファイルエディター」を選択し、メニュー右のファイル選択方「function.php」を選びます。

選択したfunction.phpにウィジェットの設定を書き込みます。

例えば以下のような内容です。

// H1直下のウィジェットを設定
register_sidebar( array(
     'name' => __( 'bottom-h1-widget' ),
     'id' => 'bottom-h1-widget',
     'before_widget' => '<div class="widget-container bottom-h1-widget">',
     'after_widget' => '</div>',
     'before_title' => '<h3>',
     'after_title' => '</h3>',
) );

idの内容「bottom-h1-widget」は好きな文字列に変えて構いませんが、後で読んで意味がわかりやすいものがよいと思います。

before_widgetの内容はclassの付いたdivとなっていますが、実際のhtmlにはこのdivでウィジェット全体が包まれる形で展開されます。ここではclassに「widget-container」「bottom-h1-widget」の2種類を設定しています。クラスwidget-containerでサイドバーも含めた全体のウィジェットを設定、クラスbottom-h1-widgetでタイトル下のみを個別に設定できることを想定しています。

2. ウィジェットを配置する 

次にloop.phpを選択します。ここではウィジェットという「箱」を実際の配置場所(ここでは記事タイトル下)に置いていきます。

loop.php には以下のような箇所があるはずです。(テーマの作り方によってはsingle.phpなどほかのファイルにある場合もあります)

<h1><?php the_title(); ?></h1>
<?php the_content(); ?>

この箇所のthe_titleで投稿のタイトル、the_contentで本文を展開しています。今回のウィジェットはタイトルと本文の間に挿入したいので、以下のようにして、先ほど設定したbottom-h1-widgetを配置します。

<h1><?php the_title(); ?></h1>

<?php if ( is_single() ) : // singleのときのみ ?>
  <?php dynamic_sidebar('bottom-h1-widget');  // H1直下のウィジェットエリアを設定 ?>
<?php endif; ?>

<?php the_content(); ?>

if 分で囲い、is_single()で判定しています。これにより、loop.phpが記事ページから呼び出されている場合のみウィジェットを配置するように設定しています。テーマの作りにもよりますが、ブログトップページでloop.phpで記事一覧を表示したりしていると、一覧にもいちいちウィジェットが表示されてとてもうるさいことになるためです。テーマよってはif文は必要ない場合もあるでしょう。

3. ウィジェットの中身を設定する

いよいよウィジェットの中身を設定します。「外観」から「ウィジェット」を選択します。

すると、先ほど設定したウィジェットが選べるようになっていますので、ここにテキストなどを設定していきます。

私の場合はテキストの色を設定したりしたかったので、「HTML」でpタグごと文章を設定しました。以下が結果です。

無事、PR告知が挿入されました。

まとめ

ここまで丁寧に読んでいただいた方にはある疑問符が浮かんでいるかもしれません。loop.phpで該当箇所にウィジェットを挿入するのなら、そこに直接pタグで文章を入れればいいのではないかと・・・

身も蓋もありませんが、それでも大丈夫です。

ですが、後から文章の中身を変更する場合やほかの要素を加えたい場合にはウィジェットの方が便利です。どうせloop.phpをいじる必要があるのなら、function.phpも少しいじってウィジェットを配置してみてはいかがでしょうか。

| カテゴリ:WordPress

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください