Jetpack の failed: Error during WebSocket handshake を消す方法

Jetpack を使用していて、Console 画面で WebSocket のエラーが発生していました。

WebSocket connection to 'wss://public-api.wordpress.com/pinghub/wpcom/me/newest-note-data' failed: Error during WebSocket handshake: Unexpected response code: 403
g @ public-api.wordpress.com/:6

api.wordpress.com へアクセスできないというエラーが出ています。

こちらログインユーザーにのみ表示されるエラーです。
ですので、解消しなくても WordPress のエンドユーザーへ大きな影響は発生しないと考えています。

対応方法

Jetpackモジュールを無効化します。
https://example.com/wp-admin/admin.php?page=jetpack_modules にアクセスします。

example.com は各々ご自身のドメインを指定してください。
通知モジュールを無効にしました。

※URLを記載している理由として、現在この画面へのリンクは見つけられませんでした。そのうち対応されるかもしれません。

Jetpack通知モジュール有効
Jetpack通知モジュール有効

こちらから無効化を押下します。

Jetpack通知モジュール無効
Jetpack通知モジュール無効

通知モジュールが無効になると、表示が有効化というテキストに変わっています。

以上で、エラーが消えていれば成功です。

参考

wordpress.com ログアウト時、コンソールに表示されるエラー | WordPress.org

Category Posts Widget でウィジェットにカテゴリ新着投稿を表示する

WordPress のサイドバーに特定のカテゴリーの新着を表示したい場合は、「Category Posts Widget」が便利です。

細かい設定ができますのでおすすめのプラグインです。

設定&使い方

プラグイン「Category Posts Widget」をインストールして有効化します。

外観 > ウィジェットから編集ページを開きます。利用できるウィジェットの中に「Category Posts」という項目があるので、そこから利用できます。

タイトルの編集

「Category Posts Widget」ではウィジェットのタイトルを編集する必要があります。

ウィジェットのタイトルから、「Recent Posts」 という表記を編集します。
ブログなら、「新着ブログ」などと書くといいですね。

カテゴリーのアンダーライン修正

「Category Posts Widget」が表示するカテゴリー一覧には、CSS でボーダーが記載されます。不要ならボーダーを打ち消すのが簡単です。

.cat-post-item {
    border-bottom: none !important;
}

cat-post-item というクラスへのボーダーを打ち消します。

参考

Documentation 4.9 – Premium WordPress Widgets – TipTop-Press

All In One WP Security でセキュリティ強化の設定ポイントと解説

WordPress のセキュリティ対策では、セキュリティプラグイン All In One WP Security の導入をお勧めしています。

All In One WP Security は、名前の通り様々な攻撃から防御してくれるプラグインです。
有名なレンタルサーバーのさくらレンタルサーバーにも最初からインストールされているプラグインです。
信頼性があるプラグインと言えます。

そもそもセキュリティ対策は必要?

まず WordPress セキュリティ対策の重要性について述べます。

WordPress を利用する場合、必ずセキュリティ対策が必要です。
インストールしただけのデフォルトの WordPress は様々な攻撃に晒されるからです。

以降、All In One WP Security の重要な設定をご紹介します。

ログインパスの変更

WP Security > Brute Force からログイン URL を変更しましょう。
ログイン URL を Login Page URL: から変更します。

例えば、「◯◯login」のようにサイト運用者しかわからないパスに変更しましょう。

【解説】 パス変更はログイン総当り攻撃対策

Brute Force という項目は、総当たり攻撃の対策項目のことです。

WordPress が初期状態のケースではログインパスが、https://example.com/wp-login.php という URL のままが多いです。

攻撃者はこのようなよくあるログインパスを狙って攻撃をしてきます。
ログインパスを wp-login.php から変更することにより、攻撃を回避することが可能となります。

ログイン時間の設定

WP Security > User Login かログインしている時間の長さを変更できます。

Time Length of Lockout (min): という項目を変更します。
初期状態では、60分になっていますが、ある程度まとまった時間ログインできるように、私は 7200 など長めに設定しています。

【解説】 ログイン時間変更

ログイン時間は短いほど安全と考えられいるはずです。
確かに、もしセッション ID などが漏洩した時に、セッションがすぐ切れた方がログインされにくいです。

しかし、そもそもですがセッションが漏洩するような段階まで攻撃されてしまうのは元々のセキュリティ設定に問題があると考えられますから、ログイン時間の長さ云々の問題ではないと考えています。

ですので、ログイン時間についてはある程度作業しやすい長さにしておいと良いでしょう。

URL からユーザー名漏洩を防止

WP Security > Miscellaneous > Users Enumeration > Disable Users Enumeration のチェックを有効にします。

【解説】 ユーザー名を隠す

Users Enumeration は直訳すれば、ユーザーの列挙です。
WordPress はURLに /?author=1 などと入力されると、ユーザー名が漏洩する恐れがあります。

Disable Users Enumeration の設定は、攻撃者にとって役立つヒントを与えないためのユーザー名漏洩防止ということになります。

セキュリティ設定ポイントと解説のまとめ

All In One WP Security の設定ポイントとその解説をご紹介しました。
WordPress のセキュリティというと難しそうなイメージがありますが、All In One WP Security の最低限のポイントを抑えておくだけでも構いません。

All In One WP Security を利用することで、WordPress をそのまま使用するよりもずっとセキュアにご利用いただけます。

YouTube 埋め込みで「このコンテンツは埋め込むことができません。 」と表示の対策

WordPress に YouTube の動画を埋め込もうとした場合にうまくいかないケースがあります。

このコンテンツは埋め込むことができません。と表示されて YouTube の動画プレイヤーが表示されません。

WordPress で YouTube が埋め込めないケース

もしご自身の動画の場合は、動画の埋め込み設定を確認するといいでしょう。

動画を再生できません
動画を再生できません

プレイヤーを再生しようとしても上図のように表示されますね。
YouTube 側のクリエイター ツールの設定を確認するといいです。

YouTube の埋め込みにプラグインは不要

WordPress は YouTube の URL を貼り付けるだけでプレイヤーの表示が可能となっています。WordPress はプラグインを入れると複雑になりますので、基本的には WordPress そのままの機能の埋め込みがおすすめです。

WordPress のカスタムページテンプレートの使い方

カスタムページテンプレートとは固定ページのカスタムテンプレートのことです。

固定ページを別テンプレートで表示できると言ってもよいですね。

使い方

PHP ファイルを作成して、以下のようにコメント内に Template Name を書きます。

<?php
/*
Template Name: 私のカスタムページ
*/

ページテンプレート – WordPress Codex 日本語版

こちらのファイルを記載するだけで、テンプレートを利用できるようになります。

テンプレートの適用ページ

テンプレートが適用されるかは命名規則がありますので、開発する場合はこちらは押さえておきましょう。

テンプレート階層

カスタムテンプレート — ページにカスタムテンプレートが割り当てられていれば、WordPress はファイルを探し、見つかればこれを使用します。
page-{slug}.php
 —
 見つからなければ、WordPress はページのスラッグで特殊化されたテンプレートファイルを探し、見つかればこれを使用します。
page-{id}.php
 —
 見つからなければ、WordPress はページの ID で特殊化されたテンプレートファイルを探し、見つかればこれを使用します。
page.php
 —
 見つからなければ、WordPress はテーマのデフォルトのページテンプレートを探し、見つかればこれを使用します。
index.php
 —
 見つからなければ、WordPress はテーマの index ファイルを使用します。
ページテンプレート – WordPress Codex 日本語版

ポイントとしてはpage-{id}.php などは、id部分がマジックナンバーになりますので使わない方が良いと考えています。

参考

https://wpdocs.osdn.jp/%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88

WordPress サーバー移行方法とポイント

WordPress の移行方法には様々な選択肢があります。

結論から言えば、プラグインの All-in-One WP Migration による移行が安全でおすすめですが、他の手法も強力なので慣れておくと役立つでしょう。

当記事では、WordPress のサーバー移行に関する手法を複数紹介しています。
状況に合わせて移行方法をご検討ください。

All-in-One WP Migration による移行

プラグインの All-in-One WP Migration を利用した移行は圧倒的におすすめです。

All-in-One WP Migration の無料版では、移行ファイル 512MB 以内なら移行できます。

ビジネスサイトを運営されている方なら、有料版でも7000円ほどなのでこちらをご利用ください。

All-in-One WP Migration のメリット

WordPress の移行では多くの場合、様々な課題が生じものですが、All-in-One WP Migration を使用した移行では、あらゆる WordPress の設定が移行されます。

例えばユーザー設定やテーマやプラグインの設定などの細かい部分ですね。これは大きなメリットです。

移行はエクスポートしたファイルをインポートするだけ

「エクスポート先」は基本的には「ファイル」を選択すれば問題ありません。

「サイトをインポートしました。」と表示されれば成功です。

サイトをインポートしました

インポートが成功した場合ですね。

懸念点

インポートの際には、post_size など容量の設定変更が必要になるかもしれません。また、仮に有料版を使用しても、あまりにも巨大なサイトを移行するには問題が生じる可能性があります。

WordPress Importer による移行

WordPress のデフォルトプラグイン、WordPress Importer による移行は、シンプルで最も簡単というメリットがあります。

WordPress Importer の移行はテキストの投稿を移行するだけなら、十分に動作しますので、オススメの手法です。

一方で、いくつか課題もありますのでご注意ください。

  • xml ファイルの容量制限
  • メディアファイルの移行
  • アイキャッチの移行

xml ファイルの移行や容量制限、もしくは条件によってはメディアファイルの移行がうまくいかない、また、そもそも現状ではアイキャッチは移行されませんので、注意が必要です。

CSV による移行

WordPress Importer のアイキャッチ移行されない問題への対応時や All-in-One WP Migration を使用しない際に使えるのが CSV を使った移行です。

複雑なことをしていないサイトなら CSV による移行は使える手法です。

WP CSV Exporter で CSV をエクスポートする

CSV のエクスポートには WP CSV Exporter を使用します。

ツール > CSV エクスポート からエクスポートを行います。
アイキャッチ画像(thumbnail)をチェックしてからエクスポートを行なってください。

Really Simple CSV Importer でインポートする

インポートには、Really Simple CSV Importer を使用します。

CSV 移行の課題

CSV による WordPress の移行では、プラグインに任せるため、デフォルト以外のカスタマイズなど複雑な設定などはうまく移行できないかもしれません。

Really Simple CSV Importer に慣れていたら、Excel などでカスタマイズもできるかもしれませんね。

Really Simple CSV Importer の使い方 については記事で公開しています。

画像などメディアファイルの移行が課題のケース

WordPress の移行作業では、メディアファイルの移行が課題になる場合があります。

FTP やコピーでメディアファイルを移行すると WordPress に認識されない

メディアファイルをサーバーの wp-content/uploads/ に同じ構成でアップロードしたにもかかわらず、メディアファイルが WordPress から見つからない場合があります。

権限の問題ではない場合は、メディアファイルの紐付けにより回復させることができます。

Add From Server でファイルの紐付けをする

ファイルと紐付けをするには Add From Server を使います。

プラグインを利用することで、ファイルの紐付けが可能です。
紐付け後に、WordPress のメディア画面から確認してください。

まとめ

WordPress サーバー移行方法とそのポイントに関してまとめました。

WordPress の移行方法には様々な方法がありますが、基本的には All-in-One WP Migration がおすすめです。ただ、経験を重ねると環境にあった方法を選択することができます。WordPress のスムーズな移行ができるといいですね!

wp_footer() の使い方

footer で呼ばれている wp_footer() というのはどういう意味があるのでしょうか。

wp_footer() については1度知ってしまうとシンプルなものです。
footer 付近で呼びたいスクリプトなどを出力する関数です。

使い方

wp_footer(); は引数がないのでポイントです。

wp_footer();

基本的には wp_head() と同じような動きだが、呼ばれる場所が違うものと考えれば良いでしょう。

もし WordPress のテーマ内で呼ばれていたらどこかで wp_footer() で呼ばれたスクリプトが使用されているかもしれません。むやみに消さないほうがいいですね。

参考

https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_footer

WordPress のプラグインとはなんのこと?疑問に答えます

WordPress ではよくプラグインをインストールをすればいいとされています。
しかし、なぜ WordPress はプラグインを入れた方がいいのか、WordPress の前提などについてはあまり述べられていないことが一般的かもしれません。

この記事ではそもそも WordPress のプラグインとはなんのことなのか、疑問に答えます。

WordPress のプラグインとは何?

プラグインとは、WordPress では次のように説明されています。

プラグインは、WordPressの機能を拡張するためのツールです。

プラグイン – WordPress Codex 日本語版

つまり、プラグインとは WordPress に簡単に機能を追加することができるプログラムパッケージと考えてください。

WordPress の初期状態は最低限の機能しかない

WordPress の魅力とは、無料でありながら世界中に開発者がおり、プラグインやテーマが豊富に用意されていることだとされています。

しかし、WordPress をインストールした初期状態では、WordPress は最低限の機能しか有していません。

これは、WordPress が最小の構成を用意する代わりに、プラグインなどを活用してユーザーに合った使い方をして欲しいということなのです。

プラグインの設定には管理者権限が必要

WordPress のプラグインをインストールしたり、設定するには管理者権限が必要です。

WordPress のプラグインは簡単に機能を追加できてしまいますから、逆に色々なユーザーが機能を追加しすぎてしまうと管理が難しくなってしまいます。そのため管理者権限のユーザーのみがプラグインを管理できるようになっています。

WordPress デフォルトプラグイン

WordPress にはデフォルトプラグインが入っています。

  • Akismet Anti-Spam
  • Hello Dolly
  • WP Multibyte Patch

これら Akismet Anti-Spam と WP Multibyte Patch は必須と言われるプラグインです。有効にしておく良いでしょう。日本語版だと WP Multibyte Patch が入っています。

その他、レンタルサーバーやホスティングサービスによってデフォルトプラグインが用意されている場合があります。

おすすめプラグインについては、別記事で紹介しましたのでこちらもご覧ください。

まとめ

WordPress プラグインとはなんなのかというテーマで簡単にご紹介させていただきました。

WordPress はプラグインを使いこなすことでパワフルな効果を出し、ビジネスへ貢献します。プラグインは数が多くわかりにくい面もありますが、有名な必須プラグインは限られています。

必須のものを抑えながら、有効活用していってください。

参考

https://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3

エスケープをする esc_attr

WordPress でエスケープをする esc_attr() の使用方法です。

echo esc_attr($text);

フォームの値を表示する場合は必ず esc_attr() を使用してエスケープするようです。

参考

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/esc_attr

CSRF対策のwp_nonce_fieldの使い方

CSRF 対策で wp_nonce_field() を利用することができます。

使い方

wp_nonce_field() を呼ぶとhidden要素が生成されます。

wp_nonce_field( $action, $name, $referer, $echo );

form タグ内に wp_nonce_field() を呼んで出力された HTML コードを確認してみるとわかりやすいです。

参考

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/wp_nonce_field