WordPressの投稿記事における「抜粋」設定機能は、投稿の一覧画面において記事のサマリとして表示させたり、またdescriptionのmetaタグに設定することで検索エンジン等の検索結果に表示させたりするのに便利です。
ただ、投稿では標準で抜粋は有効ですが、固定ページにおいては無効になっています。
これを有効にするためには、利用しているテーマのfunctions.phpに次の行を追加します。
add_post_type_support('page', 'excerpt');
WordPressの投稿記事における「抜粋」設定機能は、投稿の一覧画面において記事のサマリとして表示させたり、またdescriptionのmetaタグに設定することで検索エンジン等の検索結果に表示させたりするのに便利です。
ただ、投稿では標準で抜粋は有効ですが、固定ページにおいては無効になっています。
これを有効にするためには、利用しているテーマのfunctions.phpに次の行を追加します。
add_post_type_support('page', 'excerpt');
Docker Hubから取得したイメージは自動的には更新されません。特定のイメージを利用してコンテナを作成した場合、初回は最新のイメージをDocker Hubから取得しますが、二回目以降はタグがlatestであってもローカルにあるイメージが利用されます。
ローカルのイメージを更新するには、pullコマンドを利用します。
$ docker pull <リポジトリ名>[:<タグ名>]
TurbolinksはPjax(pushState + Ajax)を実現するためのライブラリで、Rails 5では標準で有効になっています。Turbolinksを使うと、ページ遷移時に画面全体の読み込みが行われないため、SPAにしなくても、非常にスムーズな操作性を実現することができます。
ただ、Turbolinksを利用している場合、ページ遷移時にGoogle Tag Manager(以下GTM)のページビューイベントが発火しません。
発火させるためには、次のJavascriptのコードを利用します。
document.addEventListener('turbolinks:render', function() {
dataLayer.push({
'event': 'pageview',
'virtualUrl': window.location.pathname
});
});
ページ遷移時に無名関数が実行され、GTMのスクリプトによって定義されたdataLayer配列にpageviewイベントを挿入することで、GTMにイベントが送られます。
GTM上でこのイベントをキャッチするには、新たなトリガーを作成する必要があります。トリガーのタイプを「カスタム イベント」とし、イベント名には先ほど指定した「pageview」というイベント名を指定します。(コードと同じであれば別のイベント名でもOK)
作成したトリガーを「配信トリガー」として、必要なタグに割り当てれば完了です。
まず、コンテナからイメージを作成します。
$ docker commit <コンテナ名> <イメージ名>
イメージをTARファイルに保存します。
$ docker save <イメージ名> -o <ファイル名>
CentOS環境において、誤ってDockerのコンテナを起動したまま、yumでdocker-ceパッケージをアップデートしてしまいました。
その後、再度コンテナを起動しようとしたのですが、次のエラーにより起動ができない状態になりました。
$ docker start postfix
Error response from daemon: OCI runtime create failed: container with id exists: d21dd44a4cd471de93a5869922288143d7a1e2395f90b9bee9dc4ca5476524cc: unknown
Error: failed to start containers: postfix
次のフォルダにある、コンテナ名を持つフォルダを削除することで、起動が可能になりました。
/run/docker/runtime-runc/moby
ターミナルでhistoryコマンドを実行すると、過去に実行したコマンドの一覧を見ることができて便利です。特定のコマンドを抽出したい場合は、次のようにgrepコマンドと組み合わせます。
$ history | grep ssh
結果はこのような感じで返ってきます。
14 ssh example.com
15 ssh test@example.com
121 ssh test@example.jp
表示されたコマンドを再度実行する場合は、コマンドをコピペしても良いですが、一緒に表示される番号の頭に「!」をつけて
$ !121
としても、コマンドを再度実行することができます。
これでも十分便利なのですが、次の方法を使うと、過去のコマンド履歴を使って、入力中のコマンドを補正することができます。
ホームディレクトリに次のファイルをコピーし、
$ cp /etc/inputrc ~/.inputrc
次の内容を追記して保存します。
"\e[A":history-search-backward
"\e[B":history-search-forward
これで、コマンドの入力中にキーボードのカーソルの「↑」を押すと、それまで入力したコマンドに前方一致する過去のコマンドの履歴を一つずつ確認することができます。また、履歴を遡った後に「↓」を押すと、一つ直近のコマンドに戻ります。
弊社で運用しているWebサイトにおいて、サイトのページがGoogleのインデックスからどんどん外されるという現象が発生しました。
Google Search Consoleでカバレッジを確認すると、次のようにどんどん下がっているのが確認できます。
外されたページの一つに対して、「インデックス登録をリクエスト」を行うと、次のように「URLがGoogleに認識されていません」というエラーが返ってきました。
また、Googleのモバイルフレンドリーテストを試すと、次のようなエラーが返ってきました。
ページにアクセスできません
ページが利用できない、ページが robots.txt によってブロックされているといった理由が考えられます
当該ページは、ブラウザでアクセスをすると問題なく表示できますし、robots.txtは設置していないので不思議でしたが、とりあえずrobots.txtを設置してみるとエラーが解消されました。
色々調べてみると、当サイトでは動的なURLを処理する仕組みが原因で、存在しないファイルにアクセスしようとした際にHTTPステータスコード404ではなく、500を返す状態になっていました。よってGoogleのシステムがrobots.txtを見に行ったときも500が返されていました。
Googleのインデックスへの登録にrobots.txtは必須ではありませんが、その場合はしっかりと404を返す必要があるようです。その他のステータスコードは試していませんが、少なくとも500を返すと、Googleはサイト全体がサーバー内部エラーと判断するのか(または、サイトクロールの可否を判断できないからか)、サイト内の他のページにもアクセスできなくなるように思われます。
Windowsにmemcachedをインストールした際のメモです。
まず、Windows用のバイナリを次からダウンロードします。バージョン1.4.5以降はWindowsのサービスへの登録に手間が掛るので、今回は1.4.4をダウンロードします。
http://downloads.northscale.com/memcached-win32-1.4.4-14.zip
ダウンロードしたZIPファイルを展開し、適当な場所に配置します。
C:\memcached
管理者権限でコマンドプロンプトを立ち上げ、上記のフォルダに移動します。
> cd C:\memcached
次のコマンドでmemcachedをWindowsのサービスとして登録します。
> memcached.exe -d install
登録が完了したら、サービスを起動します。
> memcached.exe -d start
以上でMemcachedのインストールは完了です。
サービスの停止およびアンインストールの際は、次のコマンドを使用します。
> memcached.exe -d stop
> memcached.exe -d uninstall
memcachedに接続して状態を確認するには、Telnetを利用するのが便利です。
Telnetを起動するには、コマンドプロンプトでtelnetコマンドを実行します。memcachedのポートは標準で11211になります。
> telnet localhost 11211
telnetコマンドが見当たらない方は、「Windowsの機能の有効化または無効化」から「Telnetクライアント」をインストールすることで使用できるようになります。
接続後、memcachedの各コマンドを利用できるようになります。
上記NorthScaleのサイトからは64 bit版のバイナリもダウンロードすることができます。
http://downloads.northscale.com/memcached-win64-1.4.4-14.zip
ただ、環境に固有の問題かもしれませんが、内部のタイムスタンプにバグがあるように思われます。
そのため、memcachedに値を登録する際にうまく有効期限を設定できないトラブルに見舞われました。memcachedでは、30日以内に関しては期限切れまでの秒数、それ以降に関してはUNIXタイムスタンプで期限の日時を指定する仕様になっているのですが、UNIXタイムスタンプで指定した場合に即座に期限切れになってしまう問題が発生しました。
最初は原因が分からず大変苦労しましたが、Telnetで接続後、statsコマンドを使用したところ、memcachedサーバーの時刻と起動からの経過時間の値がおかしなことになっていることに気付きました。
旧バージョンのXAMPPのダウンロードサイト
https://sourceforge.net/projects/xampp/files/
Apache、MySQL、PHPのバージョンの対応表
https://blog.e2info.co.jp/2015/01/10/xampp-apache-mysql-version/