カテゴリー: WordPress

  • [WordPress] Contact Form 7 – 「お問い合わせ」フォーム・プラグイン

    [WordPress] Contact Form 7 – 「お問い合わせ」フォーム・プラグイン

    ID14858

    問い合わせフォームをインストールする

    問い合わせフォームをデザインするためのプラグインです。問い合わせにはメールを使用しますが、メールが届かない場合に唱えて、WordPress側でその問い合わせのメールの内容を保管するプラグインも同時にインストールするのが良いでしょう。

    • Contact Form 7
    • flamingo

    reCAPTCHA V3に対応する「お問い合わせフォーム」として「Contact Form 7」を導入しました。

    クリエイターは同じ方(TAKAYUKI MIYAKE-さん)です。

    ある程度使ってみて継続する場合は、Donnateしないといけませんね。

    • Contact Form 7 (コンタクトフォーム/メール送信)
    • flamingo (メール送信内容のデーターベース保管)

    Contact Form 7

    • Ver. 5.1.7
    • 項目がいろいろ用意されているので、それを使ってフォームを作ります。
    • reCAPTCHA v3を設定します。

    セキュリティも確保したいので、reCAPTCHA v3を導入しますが、「Ultimate Member」プラグインの専用reCAPTCHA(v2を適用しているので競合しないはず)と競合しないことを併せて確認します。

    設定方法は以下のリンクにクリエイターさんのサイトがあります。

    プラグインの設定ページ

    reCAPTCHA v3とは、Googleが「アクションタグ」というものを使って、アクセス状況を見張ってくれているようです。そのような言い回しはしませんが。

    アクセスがどれくらい不審なのかスコアリングをしてくれて、自分の登録ページ(My reCAPTCHA)で、登録サイトのスコアを見ることができます。そのスコアリングに応じて、サイト管理者が対策をレベルに応じて打てることが売りのようです。また、不審なアクセスについて、登録しているアドレスにemailで知らせてくれるらしいです。今後、お世話になったら、その内容について追記していきます。

    flamingo

    Form 7には、問い合わせフォームをemailで送信する機能はありますが、保存機能がないので、Flamingoプラグインを導入します。

    WordPressのデータベースに問い合わせの項目の全てが保存されます。メールの送信エラーがあってもデーターベースに保管されているので安心です。

    • Ver. 2.1.1
    • 問い合わせ内容が送信される際、その項目の全てをWordPressのデータベースに保存

    参考

    参考1

    reCAPTCHA v3 – Googleより

    https://webmaster-ja.googleblog.com/2018/10/introducing-recaptcha-v3-new-way-to.html

    今後

    Ultimate MemberとContact Form 7の導入により、問い合わせを頂いた方に、形としては、メーリングリストの配信も考えています。

    何を配信するのかは、アイデアはないのですがね ^^;

    編集履歴
    2020/04/28 はりきり(Mr)
    
  • The site font-family were consisted more harmonizing – ID14235

    The site font-family were consisted more harmonizing – ID14235

    WordPressでは、サイトの表示は、使用しているプラグインの数が増えてくると、そのプラグインが独自で設定している「フォント」が使われるため、一貫性が低くなって見栄えが悪くなる。

    例えば、投稿の表示には「Flex Posts」プラグイン、サイト内の徳特定の投稿の表示には、「Advanced Gutenberg Blocks」プラグインを使用している。そのため、それぞれのフォントの違いが生じる。

    サイトのフォントについて調和(harmonizing)を実行した。

    編集履歴
    2020/04/24Mr.HARIKIRI
  • The site background color was set to the white – ID14231

    The site background color was set to the white – ID14231

    背景色

    自分が目が悪く見えづらいのに、これまで当サイトの「background color」は、肌色系にしていた。これは、最新バージョンWordPressの標準テーマであるTwenty Twentyのデフォルト色です。

    やはり、バックは「白」か「黒」が基本ですね。当サイトの立ち上げ当時は、黒のbackground colorにしていましたが、テーマをTwenty Twentyにしてから、その標準色のままでした。

    今回、「真っ白」に設定しました。

    カスタマイズ方法は、「外観 ->カスタマイズ」からできます。

    2021/10/17現在、バックのカラーは白のままです。

    編集履歴
    2020/04/24 Mr.HARIKIRI
    2021/10/17,追記(今でもバックのカラーは白のまま)
  • [WordPress] メンバーシップ・サイトを構築プラグイン – Ultimate Member プラグインの使い方をAMP対応とともに解説 –  [2021/03/07]

    [WordPress] メンバーシップ・サイトを構築プラグイン – Ultimate Member プラグインの使い方をAMP対応とともに解説 – [2021/03/07]

    ID14027

    はじめに

    当サイトは、試験的及び備忘記録として記録した内容は非表示にするために、Ultimate Memberプラグインを試験的に導入しています。

    よろしければ、「いたずら」してみて下さい。使い勝手などがわかると思います。どれだけの堅牢性(ロバストネス)があるか知りたいと思っているので、ぜひどうぞ。「ユーザー」> 「新規登録」です.

    ロバストネスの確認、及び対策の強化には、以下の2つのプラグインを導入しています。これは、SiteGuard WPは、定番のようなので、極力導入してはいかがでしょうか。

    • Statify
      • どのページがよくアクセスされているか知ることができます
      • この機能を使って、ユーザー登録ページがどれくらいアクセスされたかわかります
      • アクセスされているにもかかわらず、登録実績がなければ、登録の意図はないと判断できます
      • 因みに、Google Analyticsで調べればサイトのアクセス状況はわかると思っていましたが、ユーザーログイン画面など、no-indexにしているものは統計に含まれないので、、Statifyを導入するまで、これらのアクセス状況を知ることができていませんでした。これは、リスキーな状況です
    • SiteGuard WP Plugin
      • Statifyが集積した情報から、ユーザーログイン画面のアクセス数が数百と非常に多かった時期がありました。フロントページにユーザーログイン画面のリンクを貼っているので、そこにハッキングを仕掛けていることが考えられました。
      • そこで、SiteGuard WP Pluginの設定で、「防御」を施しています。
      • また、予備的に登録したものの、自分に届かないメールアドレスを指定した(と考えられる)ため、確認メールが届かず、そこに記載のリンクをクリックして最終的な登録まで行っていない(と考えられる)ため、そのような仮登録者によるユーザーログイン画面でのログインの試行(この状態でログインできない)こともカウントされています

    使い勝手は? とヒヤカシ

    よく海外からの「ヒヤカシ」があります。ユーザー登録はしていただけるのですが、その登録したe-mailに対して、自動で送られてくるリンク付きのe-mailの処理をしてくれません。

    そのリンクをクリックすれば、登録したe-mailは実在すると判断できるし、且つロボットではないことを、おおよそ判断できるので、登録が完了するという仕組みです。

    ご自身により登録した後に、登録の削除もできます。

    WordPressのユーザー管理画面を見れば、メール一覧から、ステータスが確認できます。もしも、登録しようとしたユーザーが、自動で送られてくるUltimate Memberプラグインからの確認メール、すなわち、そこに記載のリンクをクリックしていない限り、「メールアドレスの確認待ち中」と表示されています。メールの確認が完了すれば、WordPressのユーザーの管理画面には、そのユーザーは「承認済み」と表示されます。以上、これらの挙動は、Ultimate Member -> 設定 -> Emailから設定します。

    Ultimate Memberと専用のreCAPTCHAの説明

    Ultimate Memberは、AMPページでは、エラー/ワーニングが出てしまいます。念のため、Ultimate Memberを機能させたい投稿/ページは、AMPを適用せず、更に、AMPプラグインの設定で、機能を無効化に設定しています。

    Ultimate Member

    大まかな機能

    Ultimate Memberプラグインは、登録したユーザーに「権限グループ」を設定し、権限グループ毎に、表示/非表示の区分について投稿全体や投稿内のブロック毎(Gutenberg使用の場合)に制限をかけ、ユーザー毎にサービスを差別化するプラグインです。

    ユーザー登録して、そのユーザーの設定として例えば「Family」としたとします。次に投稿のブロックまたは、投稿全体に対して、制限(Restrict)のスライドボタンで設定して、Familyを指定すれば、Family設定のユーザーにしか見れないブロックまたは投稿を作成できます。これにより、クローズドなメンバーシップが可能です。

    専用のreCAPTCHAの注意点)

    Ultimate Member – reCAPTCHAは、WordPress標準のログイン画面に上書きできない、又は、標準ログイン画面を無効化できないため、以下の事例のようにコンフリクトを起こします。

    対策の概要

    WordPressの標準ログイン画面を使用せず,Ultimate Memberのログインに集約します.且つ,reCAPTCHAも専用のUltimate Member – reCAPTCHを使用することで,セキュリティを保ちます.

    このコンフリクト(エラー)は、2020/02現在で調べた限り、2017年から報告されています。

    以下、対策方法も記載しているので、Ultimate memberを使う場合、合わせて設定して下さい。

    reCAPTHC同士のコンフリクトと対策

    • 「Ultimate Member – reCAPTCHA」は、WordPress標準ログイン画面には適用されないため,標準ログイン画面用に,別のrecaptchaを導入すると、コンフリクトが生じてUltimate MemberでのreCAPTCHが,エラーしてログインできなくなる
      • Ultimate Member専用である
      • WordPress標準のログイン画面に適用されない
      • 複数のreCAPTCHAプラグインの併用はコンフリクトする
    • 対応策 (標準ログイン画面を無効化して対応する)
      • wp-login.phpの削除
        WordPress標準ログイン画面である「wp-login.php」をバックアップを取ってから削除(または、ファイル名の変更:この場合不正アクセス者から類推されないことに注意)し,Ultimate Memberのログイン画面のみの運用とする。
        • 注意) WordPressのアップデート後には、「wp-login.php」が復活します。その対策は、以下に示したように、Redirectプラグインを使います。
        • 説明)「wp-login.php」は、不正アクセスのターゲットになります。ファイル名称を変えるようなプラグインもあるくらいなので,ファイル名変更の対応策も効果があると考えています。
      • URLの無効化
        Redirectプラグインを使って、標準ログイン画面をUltimate Memberのログイン画面にリダイレクトする

    標準ログイン画面が必要となった場合

    UMのlogin画面ではログインできなくなる

    AMP pluginを使用しいて、且つ、ultimate memberのloginページをAMPに適用している場合に、ultimate memberのlogin画面からログインした時、エラーが出て、ログインができない状態に陥ることがあります。AMPページの内容が古かったり、その他の理由があるようです。これを復旧するには、ultimate memberのloginページを、編集画面から更新する必要があります。その際、「AMPの有効化」が有効になっているはずなので、外しておけば、今後の対策になります。

    WordPress標準のlogin画面の復旧

    以上の作業を行うには、先ずは、WordPressにログインしないといけませんが、WordPress標準のlogin画面を有効(復旧)にする必要です。WordPressのシステムファイルが置かれている「システム」に入って(または、WebDAVなどのファイルの名前が変えられるツールでも良い)、以下のように復旧させます。

    • wp-login.phpを復旧させます。
    • Synology NASにWordPressを載せているので、DSMに Loginします。
    • バックアップを取っている場合は、wp-login.phpを復元,ファイル名を変えている場合は、もとのファイル名に戻します
    • WordPressのwp-content -> pluginsフォルダにある以下のフォルダに「.bak」を末尾に付けてrenameします。
      • redirection -> redirect.bak
      • ultimate-member -> ultimate-member.bak
      • um-recaptcha -> um-recaptcha.bak
    • 以上で、Ultimate-Memberプラグイ関連のlogin画面ではなく、WordPress標準のlogin画面が復活しています。
    • wp-login.phpにアクセスして、Loginできるようになっているはずです。
      • https://your-home-page/wp-login.php
    編集履歴
    2020/05/14 追記 (RedirectプラグインによるURLの無効化)
    2020/10/24 追記 (UMのLogin画面が使用できなくなった場合にWordPress標準のLogin画面を有効にする方法)

    まとめ

    Ultimate Memberは,メンバーシップを構築できます.自分専用のページは勿論,ページの中のあるブロックだけでも設定が可能です.このプラグインの基本は,Login管理な訳です.

    しかし,そのLoginのセキュリティを高めるreCAPTCHAが,Ultimate Member専用のUltimate Member – reCAPTCHAと,WordPress専用のreCAPTCHAがコンフリクトします.ログイン画面毎のreCAPTCHAがあれば問題は解決しそうですが,そのようなプラグインは,今のところ見つけられていません.

    現状での対策として,Ultimate Member -reCAPTCHAに集約することにしました.

    Ultimate Memberプラグインの既存の専用ページ

    「ダッシュボード -> Ultimate Member -> 設定 -> 一般」で表示されるように、Ultimate Memberプラグインを導入すると7つの専用ページが予め作られます。

    まずは、新規登録pageでユーザーが登録を申請してきます。その後承認されると、ログインpageが使用されます。

    1. 新規登録 page
    2. ログイン page
    3. アカウント page
    4. ユーザー page
    5. Member page
    6. ログアウト page
    7. パスワードリセット page

    用途

    権限グループの設定により、見せる/見せないを設定

    Ultimate Memberの基本は、見せる/見せない、の設定にあります。ページ全体、ページの任意のブロックに設定できます

    サイトに新規登録して、サイトのユーザーとなり、IDとPWでログインし、与えられている「権限グループ」に応じて、制限されているページの閲覧やブロックの閲覧が可能になります。

    UM access Controls -> Restrict access?

    Gutenbergエディタでブロックを編集している際(下図)、右に表示される「UM access Controls」をONにすると、以下の設定が可能になります。

    • Everyone : 初期設定は、だれにでも見せるようになっています
    • Logged in User : これを選択すると、更に詳細に誰にするか設定できます。以下のリストにチェックを複数つけることができます
      • Editor : defaultでリストされています
      • Author defaultでリストされています
      • Contributor defaultでリストされています
      • Subscriber defaultでリストされています
      • Web Designer defaultでリストされています
      • (追加したクラスが表示される)
        • Family (例えば)
        • Premium (例えば)
    • Logged out User
    どのように表示/非表示させるかの設定

    Logged in Userで、リストを選択すると、以下の設定が可能になります。

    • Hide Block (見せない)
      • 当該Blockを見せない
    • Show global default message
      • Ultimate Memberの設定に記載した文章の表示
    • Show custom message
      • 現れるカスタムメッセージ枠に文章を入力して、た文章を入力

    Advice

    記事中の一部のブロックに対して、「UM access Controls」で「Restrict access」を設定した場合、記事の一覧で表示される記事内容の一部「Excerpt」に、表示制限をかけているにもかかわらず、表示されてしまう問題があります。
    対策は、表示制限したいブロックを「再利用ブロック」(Gutenbergで利用可能)にして、そこで、「UM access Controls」で「Restrict access」を設定をすれば、記事一覧の表示の際の、「Excerpt」に表示されなくなります。この対応で、メンバーシップを構築するのがよいです(2020/04/22)

    システムの構成

    システム構成

    Synology NAS

    • 2020/07現在
    • DS920+ (DS918+からWordPressを載せ替え, 2020/07)
    • Disk Station Manager, Version 6.2.3-25426 Update 2 (2020/09/16現在)

    WordPress

    • Version : 5.5.1-ja
    • Theme : Twenty Twenty
    • Editor : Gutenberg (標準エディタ)

    その他、必要となるプラグインについては、関連記事を参照ください。

    アクセス設定の方法

    以下の図のように、「ダッシュボード -> Ultimate Member -> 設定 -> アクセス」は、初期値で誰でも閲覧できるように設定されています。

    その下の、「Restricted Access Message」は、Classic Editor用の代替メッセージです。制限がかかったページ又はブロックの代わりに表示されます。

    以下の図では、Gutenbergエディタで使用する場合にチェックを入れてす。

    制限がかかったページやブロックを表示する際、「Restricted Block Mesage」に、代わりに表示するメッセージを入力しておきます。

    html文を使うことはできるので、「新規登録のページ」にユーザーを誘導するアンカー文(<a href=“xxx”> ◯◯◯ </a>)をコーディングしたいのですが、現在(2020/02/15)、アンカー文の絶対アドレスが、正常に機能しません。

    ブロックの制限(restrict)の仕方

    ページ全体に制限(restrict)をかける

    Gutenbergエディタを使用していれば、エディット領域の下にスクロールしていくと、以下の図のように「Restrict access to this contents?」とあるので、これにチェックを入れれば、このページに制限をかけられます。

    ページ内の一部のブロックのみに制限(restrict)をかける

    PageやPostの中で、あるブロックのみをログインしていないユーザーには見えなくすることもできます。

    そうしたい場合、そのブロックの種類によっては、制御が効かない場合があります。

    そのような場合は、gutenbergの標準のブロック(例えば”段落”)を挿入して、その段落ブロックのメニューからブロック化を設定したあと、その段落・ブロックの後ろに、アクセス制御したいブロックを図のようにクリックアンドドロップすることで、挿入できます。

    以上の操作により、この段落と制御したいブロックの集合体としてのブロックが出来あがります。

    このブロック化した集合体について、改めてアクセス制御を設定すれば、アクセス制御が正常に機能します。

    ユーザー登録の流れ

    最も楽でSPAMが回避できるユーザーの自動登録の手順は、以下のイベントの通りです。

    下図には、「ダッシュボード -> Ultimate Member -> 設定 -> Email」で設定できる項目の具体例を示しました。

    • 登録しようとするユーザーが、新規登録(当サイトを参照ください)のページから、名前、Email address, PWなどを入力して送信する。
    • Ultimate Memberプラグインは、新規登録の申請を受け取り、「アカウント有効化メール」を、新規登録ユーザーの登録したEmail addressに送信する。
    • 新規登録ユーザーは、送り返されてきた「アカウント有効化メール」のリンクをクリックする。
    • Ultimate Memberプラグインは、新規登録ユーザーが、確認のEmailアドレスからクリックしたことを知り、このEmail addressが真正であることを知る。サイトの正式ユーザーとして登録する。
    • 以上の操作を座せるには、下図のように必要な項目にチェックしておきます。
    • 実際の運用面では、一週間に何回か、新規登録があります。しかし、「アカウント有効化メール」を処理(クリック)しないユーザーが殆どです。実在しないメールアドレスと見做し、SPAMと判断します。
    • SPAMと判断した新規登録ユーザーの定期的な処理として、「ダッシュボード -> ユーザー -> ユーザー一覧」にある、「メールアドレスの確認待ち中」となっているユーザーを削除します。

    まとめ

    当サイトは、AMP対応です。AMPに対応させるためには、ページのコードであるJavaScriptやHTMLは、AMPのルールに沿った制限がかけられています。

    AMPのルールに合わないコードや余分なCSSは変換/削除されます。それでも正常に動くプラグインでないと使用できません。

    Ultimate Memberと専用のreCAPTCHAは、AMP対応可能です。アクセス制限の掛け方やユーザー登録の流れについて、今回解説しました。先ずは、自分だけしか見れない制限付きのページを作ったり、制限付きブロックを含むページを作ったりして動作確認をしました。

    以上

    関連記事

    編集履歴

    2019/12/08 はりきり (Mr)
    2020/02/15 文言整備、追記 (ユーザー登録)
    2020/02/22 文言整備
    2020/04/22 記事一覧を表示した際、表示制限にあるにも関わらず記事内容が表示させる問題についての対策を追記
    2020/05/08 追記 (まとめ、システム構成)
    2021/03/07 追記 (サイトのロバストネスを確認するためのプラグイン: Statisfy, SiteGuard WP Pluginの紹介と運用)
  • [WordPress] Advanced Ads Pro (有料版)プラグイン – Goolge adsense やAmazon Affilicateなどの広告を表示させる (表示されない場合の対処法) [2020/05/03]

    [WordPress] Advanced Ads Pro (有料版)プラグイン – Goolge adsense やAmazon Affilicateなどの広告を表示させる (表示されない場合の対処法) [2020/05/03]

    はじめに

    blogを始めてからしばらくすると、広告を載せてみたくなります。それはblogするための張り合いであり、自分のblogの評価の結果であるため、誰しも興味があるはずです。当サイトでは、Synology NASであるDS920+にWordPressを導入してblogを発信しています。レンタルサーバーよりは非力であることや、ネットワークの転送速度も1Gと低いため、苦労も多いことは否(いな)めません。広告が表示されない不具合もその一つです。

    世界にはいろいろなアフィリエイト・プログラムがありますが、Google AdsenseとAmazon Affilicateは、比較的手を出しやすく、当サイトもこの2つについて広告表示の設定をしています。

    マニュアルにより1ページ毎に広告コードを埋め込んで表示設定することも可能ですが、phpを少しは知っている必要があります。当サイトでは、最初から広告表示の専用プラグインを導入することは長い目で見た時、効率的であると考えました。2, 3の広告プラグインを試し、結果的には、Advanced Ads Pro (有料版)を導入しています。html文の見出しであるH2やH3、・・・などのを標的として広告を表示させたり、何個かの広告をグループにして、2段表示などのカラム組み表示も可能です。また、GoogleのAMPページ対応のページへの広告表示も可能であったり、add onプラグインにより色々な機能を追加することができます。

    基本的には、Advanced Ads Proを導入し、追加的にGoogleのAMPページへの対応としてResponsive add onなどを、適宜、追加して好きな広告表示の機能を使うことができます。Amazon Affilicateの場合、Google Adsenseとは異なり、高度な広告表示はしていません。具体的には、価格表示対応の場合、html文である商品のiframeの広告コードを、Advanced Ads Proの設定にコピペしたり、単純なリンクとしてのurlをコピペしたりすれば広告表示が可能となります。Google Adsenseの場合は、広告内容は、Googleが自動で広告コードを、そのページにふさわしい内容のもので送る仕組みになっています。この対応としてResponsive add onが必要です。当サイトでは、AMPページに対応しているので、少なくとも、Advanced Ads ProとResponsiveの2つが必要でした。なお、Amazonの広告には、Responsive add onは必要ありません。

    Amazonの広告

    WordPressの投稿/ページの中に、Amazonの広告を表示させる方法をまとめました。Amazonの広告を掲載してそれに関連する収入を得る場合、広告収入というよりは、コンバージョン(商品が購入されて支払いが完了したとき)により収入が得られるコンバージョン型課金です。

    「インプレッション」の意味とは?増やす方法についても解説 — LeadPlus —
    インプレッション課金型とクリック課金型及びコンバージョン課金型について理解できる解説がある

    https://www.leadplus.net/blog/impression.html

    Amazonから提供させる広告形式

    Amazon Affiliateでは、以下に示したようにAmazonから複数形式の広告コードが提供されています。そのフォーマットは、大きく3つ (html, iframe及びJavaScript)あります。

    html形式では、画像を使って画像広告を作ることができます。画像広告の作成は、Advanced Ads Proを使えば簡単に作れて、作った広告はデータベースに保管されて管理されるので、使い回しも簡単にできます。

    Amazonアソシエイトには、数種類の広告形式が提供されています (2020/3現在)
    1) 商品リンク (html形式、AMPサイトで表示可能)
    2) バナーリング (iframe形式、AMPサイトで表示不可能)
    3) Mobile popover (JavaScript形式、基本的にはAMPサイトで表示不可)
    4) テキストリンク (html形式、AMPサイトで表示可能、カテゴリー、サブカテゴリーとリンクに用いるテキストを指定して、html文を取得する)

    https://affiliate.amazon.co.jp/home

    AMPに対応する形式は限られています(表1)。しかし、広告プラグインであるAdvanced Ads Pro(有料版)とアドオンを使えば、自動的にAMP対応にしてくれます。当サイトでは、有料版を2020/03から使用して、あれやこれやと試行錯誤にて設定を検討しています。この記事では、Advanced Adsを使用しない場合で、マニュアル設定する場合を解説しています。

    表1. 広告形態とAMP対応/非対応

    広告形態AMP非AMP
    リンク形式(http://)
    JavaScript1)
    Mobile Popover2)
    iframe3)

    AMPページで広告を表示

    1) JavaScriptコードの埋め込み

    Amazonから提供させる広告コードのうちJavaScriptコードについては、AMPページに埋め込んで表示させる方法はありません.

    2) Mobile Popoverの埋め込み

    この形式は、JavaScriptなので、前述のJavaScriptコードの埋め込みと同様に、今現在対応策は不明です。試行錯誤注ですが、表示できる設定方法はわかっていません。

    3) iframeの埋め込み

    概要

    iframeを使用するには、Header領域にAMP専用の宣言が必要です。もしも、Advanced Ads Proを導入していれば、このプラグインで処理してくれるので、宣言の対応は必要ありません。

    Headerにコードを挿入できるプラグインで、その宣言のコードを挿入した上で、広告コードをページに埋め込みます。その際、AMP用のiframeであることを示すコード(amp-iframe)とする必要があります。

    作業

    • headerに宣言
      • 以下のコードを埋め込む
      • プラグインは、Header and Footerを使用する
      • <script async custom-element=”amp-iframe” src=”https://cdn.ampproject.org/v0/amp-iframe-0.1.js”></script>
    • 広告コードをページに埋め込む
      • <amp-iframe>…</amp-iframe>の名式で、コードを埋め込む。コードは「…」に。
    amp-iframe width="500"
      height="281"
      title="Netflix House of Cards branding: The Stack"
      layout="responsive"
      sandbox="allow-scripts allow-same-origin allow-popups"
      allowfullscreen
      frameborder="0"
      src="https://player.vimeo.com/video/140261016">
    </amp-iframe>

    まとめ

    Amazonの広告で提供されているコードの種類について、説明し、実際の埋め込み方についてまとめました。

    現在、2020/05/03で新型コロナウイルスによる騒動の中です。03/19からAmazonの商品リンクを広告しています。残念ながら、一度も購入していただけた実績は、ありませんが、アクセス数の問題でしょう。まあ、人生なにごとも経験といいますし、コツコツとアクセス数を上げる案を考え/実行のサイクルを回しましょう。

    広告が表示されない時の対策

    広告が表示されない場合があります。特に、Google広告の場合です。AMP化した場合に起こりやすくなるようです。AMPでは、AMPに対応したコードに変換して、それを代替表示させています。もしも、AMPで問題が起こった場合は、AMPの作業の中で、ポストを「忘れる」処理をして、再度、元の記事の編集画面から更新することで、AMPに対応したコード変換をさせると、ほとんどの場合、問題が改善できます。それでも、改善できない場合もあります。その場合は、キャッシュの構築関連に問題があることを疑います。「キャッシュ」のフラッシュをしてみます。

    それでも、Google広告が表示されない場合もあります。Googleの広告では、「Responsive」の設定が可能なので、その設定(Googleサイトでの設定、Advance Adsプラグインでの設定など)では、広告コードは、Googleサイドに存在していることの理解が必要です。更に、広告が存在するGoogleサイドから広告コードが、自分のblogサイドに届いている場合と、届いていない場合にケースを分類することができます。

    もしも、以上の対応である「忘れる」、「キャッシュ」のフラッシュ、でも、Googleの広告が表示されない場合は、自分サイドに広告コードが届いていないことを疑います。対策は、以下の通りです。

    • ブラウザで、該当ページを表示される
    • Google広告の表示が出ないことを確認する
    • しばらくの時間(数分間)、ページの上下をスクロールしたり、静観したりする。
    • (広告コードの転送が行われていると推測しています)
    • 最後に、ブラウザの再読み込みをクリック。表示されると思います。
    • それと、注意ですが、決して自分で広告をクリックしないようにしてください。そのクリックの数は、少なけばミスとして許容されているようです。でも、多すぎると、Google Adsenseから「出禁」を食います(by 経験者)。

    編集履歴

    2020/03/19 はりきり(Mr)
    2020/03/21 追記 (Amazonアソシエイト)
    2020/05/03 追記 (購入実績についての記載)
    2021/03/10 追記 (はじめに)
    2021/04/11 追記(広告が表示されない時の対策)
  • [WordPress] Adminimize プラグイン — ログイン・ユーザー毎に表示するメニュー項目を選択的に非表示にできる

    [WordPress] Adminimize プラグイン — ログイン・ユーザー毎に表示するメニュー項目を選択的に非表示にできる

    課題

    WordPressの編集時に、邪魔なメニューを消します。そのプラグインが、「Adminimize」です。

    バックエンド・メニューの表示数を少なくしたり、必要でないものを消したりできます。

    フロントエンド・メニューには、プラグインを多く入れていると、メニュー同士が競合して操作できなくなる場合があります。その時は、必要でない機能を消すことができます。

    沢山の設定が可能です。今回は、「Admin Bar Front End Options」をいじます。

    Admin Bar Front end Optionsでは、「こんにちは、○◯◯ さん」が邪魔になっていたので、チェックして非表示にしました。

    結果

    ログインしたままサイトを表示させるとtop menuに「こんにちは、◯◯◯ さん」が邪魔でした。そのせいで、重なっている必要なメニューを選択できずにいましたが、このプラグインのお陰で、不都合が解消されました。

    編集履歴

    2020/03/12 はりきり(Mr)
    2020/07/16 文言整備

  • [WordPress] WordPress Share Buttons プラグイン – AddThis

    [WordPress] WordPress Share Buttons プラグイン – AddThis

    WordPress Share Buttons Plugin – AddThisプラグイン

    AMP対応ページで動作安定

    SNSへの投稿ボタンです。AMP対応では、このプラグインが安定しています。

    標準のSNSボタンは、FaceBook, Twitter, e-mailおよび’+’ボタンです。

    ‘+’ボタンは、その他のSNSに投稿したい時に使用します。’+’を押すと、開発者のサイトに飛び、そこには多数のボタンがあるので、使用したい投稿を押します。例えばLINEもあるので、それを押すと、LINEへの投稿画面になります。

    編集履歴
    2020/03/08 はりきり(Mr)
    2020/09/28 文言整備
  • [用語] AMP ; Accelerated Mobile Pages

    [用語] AMP ; Accelerated Mobile Pages

    AMP : Accelerated Mobile Pages, モバイル用に高速化調節されたページを作るルールと技術

  • [WordPress] サイトのスピードを測る – EZOIC

    [WordPress] サイトのスピードを測る – EZOIC

    サイトのスピード

    サイトのスピード測定は、「GoogleのPageSpeed Insights」が有名ですが、以下のサイト(EZOIC)でも、サイトアドレスを入力して測るだけならFreeで測定できます。

    このサイトは、WordPressの広告プラグイン「Advanced Ads」の有料版を購入したのですが、不具合の相談をしている過程で、そのスタッフさんから教えてもらいました。聴きなれない英語圏のサイトですが、変なサイトでは無いと思います。

    試しに一度どうでしょうか?

    Ezoic

    以下のリンクは、スピードテストに直接行けます

    https://svc.ezoic.com/speed-up-site/?_ga=2.178934820.1631995068.1583508394-1097835698.1583508394

    関連

    2020/03/07 はりきり(Mr)

  • [WordPress] 自作プラグイン、Twenty Twentyテーマ幅の修正、子テーマのcontent.phpをいじる – △ID11199 [2020/03/01]

    [WordPress] 自作プラグイン、Twenty Twentyテーマ幅の修正、子テーマのcontent.phpをいじる – △ID11199 [2020/03/01]

    はじめに

    サイトの表示具合は、設定されているCSSを変更して自分好みに変更したり、自作のプラグインにCSSコードを埋め込んだり、色々と方法があるようです。CSSをいじる場合は、小テーマを作って、それを編集するようにします。子テーマを作る理由は、テーマのアップデートによって上書きされてしまうので、それを避けるためです。私も専門家ではありませんが、これからは、徐々にサイトの表示具合をカスタマイズしていきたいと思っていますが、その手法もいろいろあり、それらを学んで行こうと思います。

    自作プラグイン

    まだ、表示幅の埋め込みしかできていません。当サイトでしようしているTwenty Twentyテーマの投稿のデフォルト幅を、以下の手順で自作プラグインとしてインストールして、広くなるように設定できます。

    • 参考1からWordPressのTwenty Twentyテーマのデフォルトの投稿幅を広くするコードを、参考1のmy-plugin.phpの指定の箇所にコピペする
    • my-plugin.phpは、WordPressのブラインインとしてインストールできるようにパッケージされているので、ダウンロードしたファイルの組合せで、アップロードしてインストールする。
    • 以上の操作で、設定が反映される。

    参考1
    WordPress5.3 新デフォルトテーマ Twenty Twenty をチェックしています

    https://nendeb.com/819

    参考2
    WordPress (自分専用)マイ・プラグインを作ろう

    https://nendeb.com/1

    完成したプラグインのコード

    幅の修正のオリジナルは、functions.phpにグローバル変数として設定されており580px(下の「functions.php」を参照)でしたが、iPad Pro 11で閲覧して違和感のない広さに設定してみました。

    その設定では、860pxになっています。以下のコードのコメントには、オリジナルの値580pxを残していますが、実際の設定コードは860pxに変更しています。

    functions.php

    グローバル変数 $content_width

    	// Set content-width.
    	global $content_width;
    	if ( ! isset( $content_width ) ) {
    		$content_width = 580;
    	}
    

    my-plugin.php

    <?php
    /*
    Plugin Name: my-plugin
    Plugin URI:
    Description: My Plugin For WordPress.
    Version: 1.0.2
    Author: nendeb
    Author URI: http://nendeb.com/
    License: GPLv2 or later
    */
    
    
    // ここからコードをいれてください。
    
    // Start_01,WordPress Theme: Twenty Twenty の表示幅
    /* コンテンツ幅は 580px と だいぶ狭いなと思うので 簡単に変更できるかテストしてみました。
    公開画面と管理画面のCSS と $GLOBALS[‘content_width’] を上書きしてみます。
    */
    
    /*
     * 公開画面での Content幅を 860px へ変更する
     * @since Twenty Twenty 1.0
     * License: GPLv2 or later
     */
    function twentytwenty_org_style() {
        echo '<style>
        .section-inner.thin,
        .entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.is-style-wide){
            max-width: 86rem;
        }
        </style>';
    }
    add_action( 'wp_head', 'twentytwenty_org_style', 99 );
     
     
    /*
     * 管理画面での Content幅を 860px へ変更する
     * @since Twenty Twenty 1.0
     * License: GPLv2 or later
     */
    function twentytwenty_admin_style() {
        // Content幅 860 + 30 -> 860 + 0 : Admで確認した画面がUserの画面と異ならないようにした
        echo '<style>
        .wp-block {
            max-width: 860px;
        }
        .wp-block[data-align="wide"] {
            max-width: 860px;;
        }
        .wp-block[data-align="full"] {
            max-width: none;
        }
        </style>';
    }
    add_action( 'admin_print_styles', 'twentytwenty_admin_style', 99 );
     
     
    /*
     * content_width を 860px へ変更する
     * @since Twenty Twenty 1.0
     * License: GPLv2 or later
     */
    function twentytwenty_content_width() {
        // This variable is intended to be overruled from themes.
        $GLOBALS['content_width'] = 860;
    }
    add_action( 'after_setup_theme', 'twentytwenty_content_width', 0 );
    
    // End_01
    
    
    
    
    
    
    
    
    
    
    
    // ここまで
    
    
    if ( ! function_exists( 'nendebcom_hide_myplugin_updateplugin' ) ) :
    /*
     * サンプル
     * my-pluginの更新を非表示
     *
     * Note : https://nendeb.com/350
     */
    function nendebcom_hide_myplugin_updateplugin( $data ) {
    	if ( isset( $data->response['my-plugin/my-plugin.php'] ) ) {
    		unset( $data->response['my-plugin/my-plugin.php'] );
    	}
    	return $data;
    }
    add_filter( 'site_option__site_transient_update_plugins', 'nendebcom_hide_myplugin_updateplugin' );
    endif; // nendebcom_hide_myplugin_updateplugin
    
    
    
    
    
    if ( ! function_exists( 'nendebcom_plugin_last_load' ) ) :
    /*
     * サンプル
     * my-plugin を最後に読み込むようにする。
     * Note : https://nendeb.com/10
    */
    function nendebcom_plugin_last_load() {
    
        $this_activeplugin  = '';
        $this_plugin        = 'my-plugin/my-plugin.php';    //最後に読み込みたいプラグイン
        $active_plugins     = get_option( 'active_plugins' );
        $new_active_plugins = array();
    
        foreach ( $active_plugins as $plugins ) {
            if( $plugins != $this_plugin ){
                $new_active_plugins[] = $plugins;
            }else{
                $this_activeplugin = $this_plugin;
            }
        }
    
        if( $this_activeplugin ){
            $new_active_plugins[] = $this_activeplugin;
        }
    
        if( ! empty( $new_active_plugins ) ){
            update_option( 'active_plugins' ,  $new_active_plugins );
        }
    }
    add_action( 'activated_plugin', 'nendebcom_plugin_last_load' );
    endif; // nendebcom_plugin_last_load
    

    子テーマのfunctions.phpをいじる

    子テーマの作り方は、以下の関連記事をご参照ください。

    子テーマのディレクトリ直下にある「functions.php」に以下のコードを挿入します。

    functions.php

    • 子テーマ定義
    • 自動保存無効化
    • Headに(adsense)組み込み
      • AMP対応したページ/投稿には、headerにJavaScriptコードは使えません。挿入しても無効化されます。
    <?php
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
      wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
      wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style')
      );
    }
    
    // 自動保存を無効にする処理
    function autosave_off() {
      wp_deregister_script('autosave');
    }
    add_action( 'wp_print_scripts', 'autosave_off' );
    // For no support to AMP, AMP do not allow insertion to Header
    // 以下は、<Head>と</head>の間にGoogle Adsenseコードを挿入
    // ただし、AMPでは、無秩序に挿入は許されないため、AMPを使用する場合は削除
    function km_script () {
     echo '<div><script data-ad-client="ca-pub-1277399675163968" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script></div>';
    }
    add_action( 'amp_post_template_head', 'km_script' );
    //
    
    ?>

    ログインしているときに処理する

    編集の最中に、投稿内容をブラウザで表示させて確認する場合、「編集」リンクを投稿の最初や最後の方に表示できると便利です。以下は、投稿の最初に表示させるカスタマイズです。同時に前後の投稿ナビゲーションも表示させます。

    content.phpに、以下のコードを挿入します。

    <?php if (is_user_logged_in()) : ?>
    
    	<div>
    	<?php
    	if ( is_single() ) {
    	
    		get_template_part( 'template-parts/navigation' );
    			
    	}
    
    		// 編集
    		edit_post_link();
    
    	?>
    	</div>
    
    <?php endif;?>
    

    完成した – content.php

    • 前後の投稿へのナビゲータ
    • 投稿の編集リンクの表示

    以下、完成した content.phpのコード

    <?php
    /**
     * The default template for displaying content
     *
     * Used for both singular and index.
     *
     * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
     *
     * @package WordPress
     * @subpackage Twenty_Twenty
     * @since 1.0.0
     */
    
    ?>
    
    <article <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    
    	<?php
    
    	get_template_part( 'template-parts/entry-header' );
    
    	if ( ! is_search() ) {
    		get_template_part( 'template-parts/featured-image' );
    	}
    
    	?>
    
    	<div>
    	<?php 
    	// 全ページに表示 : カテゴリメニュー
    	get_template_part( 'template-parts/info-course' );  
    	?>
    	</div>
    
    <?php if (is_user_logged_in()) : ?>
    
    	<div>
    	<?php
    	if ( is_single() ) {
    	
    		get_template_part( 'template-parts/navigation' );
    			
    	}
    
    		// 編集
    		edit_post_link();
    
    	?>
    	</div>
    
    <?php endif;?>
    
    
    
    	<div class="post-inner <?php echo is_page_template( 'templates/template-full-width.php' ) ? '' : 'thin'; ?> ">
    
    		<div class="entry-content">
    
    			<?php
    			if ( is_search() || ! is_singular() && 'summary' === get_theme_mod( 'blog_content', 'full' ) ) {
    				the_excerpt();
    			} else {
    				the_content( __( 'Continue reading', 'twentytwenty' ) );
    			}
    			?>
    
    		</div><!-- .entry-content -->
    
    	</div><!-- .post-inner -->
    
    	<div class="section-inner">
    		<?php
    		wp_link_pages(
    			array(
    				'before'      => '<nav class="post-nav-links bg-light-background" aria-label="' . esc_attr__( 'Page', 'twentytwenty' ) . '"><span class="label">' . __( 'Pages:', 'twentytwenty' ) . '</span>',
    				'after'       => '</nav>',
    				'link_before' => '<span class="page-number">',
    				'link_after'  => '</span>',
    			)
    		);
    
    		// 編集
    		edit_post_link();
    
    		// Single bottom post meta.
    		twentytwenty_the_post_meta( get_the_ID(), 'single-bottom' );
    
    		if ( is_single() ) {
    
    			get_template_part( 'template-parts/entry-author-bio' );
    
    		}
    		?>
    
    	</div><!-- .section-inner -->
    
    	<div>
    	<?php
    	?>
    	</div>
    
    	<?php
    
    	// 全ページに表示 : カテゴリメニュー
    	get_template_part( 'template-parts/info-course-end' );
    
    	if ( is_single() ) {
    
    		get_template_part( 'template-parts/navigation' );
    
    	}
    
    	/**
    	 *  Output comments wrapper if it's a post, or if comments are open,
    	 * or if there's a comment number – and check for password.
    	 * */
    	if ( ( is_single() || is_page() ) && ( comments_open() || get_comments_number() ) && ! post_password_required() ) {
    		?>
    
    		<div class="comments-wrapper section-inner">
    
    			<?php comments_template(); ?>
    
    		</div><!-- .comments-wrapper -->
    
    		<?php
    	}
    	?>
    
    </article><!-- .post -->
    

    Font-weight

    font-weightの値は、100から900まで100刻み(未確認、1刻みでも可能かもしれない)で設定できます。

    • 400 : 普通の太さ
    • 700 : bold
    • 普通文字を500すれば、見やすくななる(ブロガーさんの提案)

    https://masaa.net/2018/12/28/post-181227-4/

    編集履歴

    2020/04/08 文言整備、ソース記載、タイトル修正
    2020/05/01 文言整備
    2021/02/25 追記 (「はじめに」)

    関連記事(WordPress, Tag:customize)