WordPress にプラグインとして認識させるコメントヘッダの書き方

WordPress のプラグイン開発の際、ヘッダの記載は最初に認識しておくべき内容です。

プラグインとして認識させる1行のヘッダ情報

WordPress へプラグインとして認識させるには、PHP ファイルにコメントの記載が必要です。

<?php
/*
 * Plugin Name: My Plugin
 * /

以上です。

PHP ファイルにコメントで、「Plugin Name: ◯◯プラグイン」と記載するだけでそのファイルをプラグインとして認識されます。

プラグインが認識されるか確認

WordPress の wp-content/plugins ディレクトリに新規ディレクトリを作るか、もしくはコメントを書いた PHP ファイルをディレクトリを含んだ ZIP ファイルにして WordPress に追加してみてください。

ヘッダコメントを書いただけの PHP ファイルでも、WordPress はプラグインとして認識してくれます。

もちろんヘッダだけでは中身がないので動作はしませんが、プラグイン開発の全てはこのヘッダから始まります。

参考

今回の内容ですがプラグインスターターキットを使用すれば、ヘッダ周りの知識なしでもジェネレータが自動生成してくれます。ジェネレータでプラグインソースを生成して中身の確認をしてみると参考になります。

css の指定が net::ERR_ABORTED 404 (Not Found) とエラーになったので修正

ブラウザのコンソールでエラーが出ていました。

fonts.googleapis.com/earlyaccess/notosansjapanese.css net::ERR_ABORTED 404 (Not Found)

この記事では、実例でエラー修正の手順をご紹介します。

404 (Not Found)エラーを修正

テーマのソースを見ると以下のようになっていました。

<link href="fonts.googleapis.com/earlyaccess/notosansjapanese.css" rel="stylesheet" />

これは Typo でしょうか。手動編集によって間違った URL が入力されています。
リンクが切れてしまったことがエラーの原因のようです。

href 属性の値を確認してみましょう。

リンクを修正

URL を修正して fonts.googleapis.com へアクセスできるようにします。

<link href="//fonts.googleapis.com/earlyaccess/notosansjapanese.css" rel="stylesheet" />

href 属性の値を正しい URL に修正したのでエラーは解消しました。

.htaccess でさくらレンタルサーバーのWordPress で www.無しドメインに統一する方法

さくらレンタルサーバーでは .htaccess でドメインなしありを統一する方法が紹介されています。

この記事ではヘルプを参考に実際のドメインを例に設定をしてみましょう。

さくらレンタルサーバーでは、.htaccess なしのプラグインを利用する方法が紹介されています。.htaccess を編集するよりも、プラグインの利用を推奨します。

.htaccessで www なしドメインを統一

さくらレンタルサーバーで紹介されているヘルプでは次のようになっています。

WordPressを常時SSL化、かつwww.無しドメインでのアクセスに統一したい
.htaccessの設定例

https://help.sakura.ad.jp/rs/2163/?article_anchor=js-nav-3
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.jp) [NC]
RewriteRule ^(.*) https://example.jp/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

こちらを参考にすればOKです。
例えば以下の部分などは他のサーバーでも使えますね。

RewriteCond %{HTTP_HOST} ^(www\.example\.jp) [NC]
RewriteRule ^(.*) https://example.jp/$1 [R=301,L]

こちらはロリポップ!レンタルサーバーの .htaccess で利用したことがあります。

実際のドメインを例に設定

当サイトのドメインは、camon.tokyo ですので .htaccess に以下のように記載します。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.camon\.tokyo) [NC]
RewriteRule ^(.*) https://camon.tokyo/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

example.com の部分を camon.tokyo に書き換えました。
このようにお持ちのドメインに書き換えて .htaccess へ記載することで、www ありのドメイン( https://www.camon.tokyo )を www なしのドメイン( https://camon.tokyo ) に統一することができました。

また SSL に統一されているので、HTTP でのアクセスも HTTPS にリダイレクトされるのが良いですね。

さくらレンタルサーバーの .htaccess では挿入場所に注意

.htaccess に挿入すれば OK と記載しましたが、さくらレンタルサーバーの .htaccess を確認したところ、記入場所には注意が必要だと感じました。

ソースを以下に表示しますのでご確認ください。

# BEGIN SAKURA Internet Inc.
<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
</IfModule>
<IfModule mod_expires.c>
    ExpiresActive On
    <FilesMatch "\.(css|js)$">
        ExpiresDefault "access plus 1 week"
    </FilesMatch>
    <FilesMatch "\.(gif|jpe?g|png)$">
        ExpiresDefault "access plus 1 month"
    </FilesMatch>
</IfModule>
# END SAKURA Internet Inc.

# ここに常時SSL化のコードを記載

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

ソース内に「ここに常時SSL化のコードを記載」とコメントさせてもらいました。.htaccess にある 「#BEGIN WordPress」というブロックの後ろに記載してしまうと、動作に少し問題が生じたので躓きポイントだと感じました。

ドメイン設定は .htaccess で簡単に設定しよう

www ありドメインを統一したり、HTTP のリダイレクトは、インターネット上には様々な方法が紹介されているため、何を選択していいのか迷ってしまうこともあるかもしれません。

当記事のさくらレンタルサーバーで紹介されている方法は、シンプルでさらに試しやすいリーズナブルな方法と感じています。とてもシンプルでおすすめの方法です。

ドメイン周りのリダイレクトなどで迷ったらこの手法をご利用ください。

参考

https://help.sakura.ad.jp/rs/2214/

執筆者プロフィールを表示できる Simple Author Box の使い方

WordPress プラグインの Simple Author Box を利用すると、記事の下に執筆者のプロフィールボックスを表示できます。

Simple Author Box の使い方

WordPress のユーザープロフィール情報が Simple Author Box のボックスで表示されます。

Simple Author Box の表示情報編集

WordPress 管理画面から ユーザー > あなたのプロフィール でユーザー情報を編集することができます。SNSアカウントの追加もこちらですね。

表示切り替えはプラグイン画面から

非表示項目などを設定したい場合は、WordPress 管理画面から、Simple Author と設定画面を開きます。

こちらから表示OnOffなどの切り替えが可能です。

CSV一括登録する WordPress プラグイン Really Simple CSV Importer の使い方

WordPress でコンテンツ管理の生産性は CSV で劇的に高めことができます

その CSV 利用を助けるプラグインが、Really Simple CSV Importer です。
この記事では Really Simple CSV Importer の使い方と活用方法をご紹介します。

使い方

WordPress における CSV の利用は、データベース的なデータ閲覧をするようなコンテンツに向いています。

例:店舗一覧、商品一覧、連絡先一覧など

このような用途に Really Simple CSV Importer を検討ください。

Really Simple CSV Importer のインポート画面

管理画面の ツール > インポートを選択します。

CSVの項目から、インポーターの実行を選択します。

インポーターを実行します。

CSV ファイルを選択してアップロードしてインポートすることができます。

以下は管理画面から落とせるサンプルの sample.csv と同じファイルです。

同じファイルを Googles スプレッドシート に上げています。
サンプルファイルを利用してインポートデータを作成しましょう。

インポートデータの作成

Excel や Google スプレッドシートで CSV を準備しましょう。この記事では Google スプレッドシートを使用します。sample.csv を スプレッドシートに読み込んで編集しています。

スプレッドシートに読み込んだsample.csv

上記画像にある1行目がキーとなる大切な行です。項目ごとに意味があります。

項目名 説明
post_id 上書きしたい記事IDを指定します。空欄の場合は新規追加の記事になります。
post_name タイトルと似ていますが、パーマリンクをいれます。
post_author 編集するユーザー名を指定します。
post_date 2013/09/13 0:00:00 のような形式で公開日を指定します。
post_type 投稿タイプを指定します。postを指定すれば、通常投稿です。カスタム投稿タイプなどはここで指定します。
post_status publishを入れると公開されます。空欄だと下書きになります。
post_title タイトル
post_content 記事の中身
post_category カテゴリーを付与できます。
post_tags タグを付与できます。
custom_field カスタムフィールドが存在する場合キー名を指定することができます。
tax_{taxonomy} タクソノミーのキー名を指定することができます。

これら項目は埋まっている場合と空欄の場合でそれぞれ動作が異なります。スプレッドシートでデータを色々変更して試してみると動作に慣れますよ。

参考

最速でWordPressのプラグイン雛形・スタータキットを作る

WordPress のプラグイン開発をはじめたい方向けの記事です。

  • 新しくプラグイン開発をしたい
  • プラグインのカスタマイズをしたい

みたいに方にメリットとなる内容です。最速と書いたのですが、ジェネレータで雛形を作ると本当に速いです。プラグイン作成に5分もかかりません。

プラグインの雛形をジェネレータで作成

WordPressプラグインという色々なファイル構成や関数を学ばなければならないかと思うかもしれません。

しかし、今時はジェネレータが用意されています。ジェネレータを使えばあっさりプラグインの雛形、スターターキットを生成できます。

このようなプラグインジェネレータサービスがあるので利用しましょう。
フォームに名前など情報を入力するだけで、プラグイン開発ができてしまいます。

あとは、お好きな WordPress 環境で確認してください。管理画面にプラグインが表示されます。

Googleカレンダーの埋め込みレスポンシブ対応について

Google カレンダーの予定をサイトに埋め込みたいという場合、スマホとデスクトップ両方のレスポンシブ対応が必要となります。

この記事では Google カレンダーのレスポンシブ対応の方法をご紹介します。
レスポンシブ対応でユーザーのカレンダー閲覧環境を改善してください。

埋め込みiframeタグをレスポンシブ対応クラスで囲む

Google カレンダーの埋め込みタグを、googleCalendar クラスで囲います。

<div class="googleCalendar">カレンダーiframe埋め込みコード</div>

レスポンシブ対応スタイルを追加

レスポンシブ対応のための CSS を追加してください。

<style>
.googleCalendar{
  position: relative;
  min-height: 740px;
  width: 100%;
  padding-bottom: 50%;
}

.googleCalendar iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
</style>

min-height の部分は、media-query などでモバイルとデスクトップで環境に合わせて調整すると良いでしょう。

参考

SSL移行でこのサイトへの接続は保護されていませんというエラーは参照がHTTPの場合が多い

HTTPからHTTPS移行したもののブラウザで、警告が表示される場合があります。

『このサイトへの接続は保護されていませんこのサイトでは機密情報(パスワード、クレジットカードなど)を入力しないでください悪意あるユーザーに情報が盗まれる恐れがあります。

SSL証明書を設定して対応をしHTTPSでアクセスができるにもかかわらず、警告が出る場合は、HTTP参照が残っているケースが多いです。

対策はHTTPの参照をHTTPSに書き換える

次のような画像やCSS、スクリプトのURL参照があるとSSLの警告は消えません。

<img src="http://example.com/test.jpg" />

こちらをhttpから、httpsもしくはスラッシュに書き換えます。

<img src="https://example.com/test.jpg" />

このようにHTTPSへの参照に切り替えれば警告が消えます。
SSL対応で警告が消えない場合は、ソース内を調査するなどご検討ください。

SSL化で忘れがちなTODO

近年ではサイトを SSL で HTTPS 化することが必須の時代となりました。
そんな HTTPS 化の際には忘れがちで必須の TODO があります。

  • SSL 対応したら SearchConsole に新規登録が必要
  • 新規登録なのでサイトマップ登録が必要
  • GoogleAnalytics のプロパティを更新

URL が代わりますので、サイトマップや GoogleAnalytics の連携が必要になります。

HTTPS 化したサイトを SearchConsole で新規に追加する

HTTPS 化したサイトは GoogleSearchConsole への新規登録が必要です。過去のHTTP のプロパティをそのまま移行はできないようです。

サイトマップを追加

SearchConsole への追加ののちに、サイトマップを追加します。
SearchConsole の「サイトマップ」ページからサイトマップを登録します。

忘れがちな所なので注意してください。

GoogleAnalytics のプロパティからSearchConsole を設定

SearchConsole を変更したので、次は GoogleAnalytics の設定を変更します。
管理 > プロパティから SearchConsole の指定を変更してください。

wp_nav_menuでBootstrapのnavに対応する方法

WordPress のテンプレートタグ wp_nav_menu を BootstrapのNavsメニューに対応させたいケースについてご紹介します。

wp-bootstrap-navwalkerというライブラリを使用すると、wp_nav_menuをBootstrapのNavsに対応させることができます。

使い方

使い方は2ステップ、ライブラリの読み込みとソースコードの作成です。

読み込み

class-wp-bootstrap-navwalker.php をコピーもしくはダウンロードして、テーマディレクトリに保存します。class-wp-bootstrap-navwalker.php というファイル名で保存しましょう(ファイル名はなんでもOK)。

読み込み記述がない場合は、functions.php に class-wp-bootstrap-navwalker.php の読み込みコードを記載します。

<?php
/**
* WP Bootstrap Navwalker
*/
require get_template_directory() . '/class-wp-bootstrap-navwalker.php';

これでライブラリ class-wp-bootstrap-navwalker.php が読み込まれて使用可能になります。

wp_nav_menu の記述

wp_nav_menu にキーを渡すことで Bootstrap の Navs 対応ができるようになっています。

<?php
wp_nav_menu( array(
	'menu_id' => 'メニュー名',
	'menu_class' => 'nav',
	'container_id' => 'navbarNav'
	'fallback_cb' => 'WP_Bootstrap_Navwalker::fallback',
	'walker' => new WP_Bootstrap_Navwalker()
));

メニューの子要素を表示するには、depthのキーを2に指定してください。