WP: マルチサイトとは?

コードをみていて,

is_multisite()

という処理があったので,調べてみました.

ざっくりまとめると,マルチサイトとは,1つの WordPress で複数の WordPress を運用できる機能らしいです.
導入にはメリット,デメリットがあるようです.
特に気になるのは,プラグインで未対応のものがあるとのこと.
何かしら理由のあるユーザ以外は,利用しない方が良い機能と感じますね.

参考: WordPressマルチサイトのメリット・デメリット・設定方法

Google Analytics の計測が出来ない場合に確認すること

先日より Google Analytics の計測が出来ていなかったので,原因を調べてみた.
結果,WordPress サイトのテーマを変更した際に,header.php の に Analytics のトラッキングコードを入れていなかったため,計測が出来ていなかったことが分かった.
早速,WordPress 管理画面より [外観] – [テーマエディター]を選択し,テーマヘッダー(header.php)のタグにトラッキングコードを直接追加した.
約1分ほどでリアルタイム計測が動作した.
WordPress サイトのテーマを変更した際には,忘れずに Analytics のトラッキングコードを追加しておかなくてはいけないですね.
でも,こういう作業って年に1回…って感じで忘れちゃうんだよなー

参考: Googleアナリティクス導入時の設定・設置方法【初心者向け】

WP: WordPress メモ

WordPress のコードをザーとみていて,固有の機能,単語など調べたのでメモしておきます.

パーマネントリンクとは

パーマリンクとは,Webページ毎に設定したURLのこと.
例えば,https://www.xxx.com/yyy/zzz/
というWebページのURLであれば,後半の/yyy/zzz/ がパーマリンク.

テンプレートタグ

テンプレートタグは,ブログのデータを動的に表示するため,テンプレートの中で使用するタグ.
参考: テンプレートタグ

.htaccess

wordpress の .htaccess は「存在しないファイルは全てアプリで処理する」設定になっているとのこと.

参考: .htaccessとは?
参考: .htaccess の書き方(リダイレクト編)

WordPress のコードをざっくりみる方法

参考: WordPressのコアファイルの仕組み。3ステップでざっくりまとめ。

ざーとファイルについては眺めたので,次はブログが表示されるフローをみていきたいと思います.

XML-RPC機能は、アプリなどを使ってリモートから投稿出来る機能

xml-rpc に関するファイルがあったので,WordPress ではどのような使われ方をしているのか調べた.

xmlrpc.phpは管理画面からではなく、他のプログラムやサイト外からワードプレスをコントロールするための様々な機能を提供しています。
例として下記のようなものがあります。

投稿をメールで作成
投稿を編集
投稿の削除
ファイルのアップロード
コメントの追加削除
コメントの編集
ピンバック(リンク元がリンク先に通知する機能です)

ピンバック

ピンバックを使用するつもりはないけど,よくまとめられていたのでメモ.
参考: ピンバックとは?正しい意味とWordPressに設定する方法

WP: フィルター,アクション フックについて

PHP の記述もざっとチェックしたので,次は WordPress 仕様についてチェックしていきます.
フィルター,アクション フックは特徴的な機能みたいなので最初にチェックしてみます.

次のサイトの記事を見るとざっと機能について把握することが出来ました.
とりあえずは詳細な情報より,分かった気になれるまとめられた記事が良いですよね.

参考: WordPressカスタマイズの幅が劇的に広がる、フィルターフックとアクションフックの使い方

簡単にまとめると,あらかじめ定義されている処理タイミングに処理を追加する機能のようです.
では,どういう定義されている処理タイミングがあるかというと,以下のページに書かれているはずです.

参考: プラグイン API/フィルターフック一覧
参考: プラグイン API/アクションフック一覧

サンプルで1つ試してみます.
以下のフィルタを使用してみます.

the_title
画面を表示する前にデータベースから取得した投稿タイトルに適用される。(トラックバックなどの他の操作でも使用)
以下のように WordPress では使用されています.
1
2
3
4
5
<p class="wp-embed-heading">
	<a href="<?php the_permalink(); ?>" target="_top">
		<?php the_title(); ?>
	</a>
</p>

functions.php に以下の処理を追記します.

1
2
3
4
function my_the_title($title, $id) {
	return 'ID='.$id.$title;
}
add_filter('the_title', 'my_the_title', 10, 3);

WordPress を起動すると記事タイトルの先頭にIDが付加されました.

ここまで,やって以下の疑問が沸きました.
1. 処理は functions.php に追記で良いのか?
2. add_filter() の第4引数を調べる方法は?

apply_filters( 'the_title', $page->post_title, $page->ID )

ここをチェックするしかないのかな?

今後,調べたいと思います.
まぁ,フィルター,アクション フックはなんとなく分かった気になれました.

WP: セッションストレージの使い方

WordPress のコードをみていて,知らない処理があったのでメモしておきます.

「ログアウト時に保存されている投稿データをすべて削除」とあります.
HTML5で追加されたAPIなので,使用可否を行っているのでしょう.

1
2
3
4
5
6
7
8
9
10
/*
 * Remove all stored post data on logging out.
 * This could be added by add_action('login_head'...) like wp_shake_js(),
 * but maybe better if it's not removable by plugins.
 */
if ( 'loggedout' == $wp_error->get_error_code() ) {
	?>
	<script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
	<?php
}

値を保存しているのは,autosave.js にありました.

1
2
3
4
5
function autosaveLocal() {
		(省略)
	function getStorage() {
		(省略)
		stored_obj = sessionStorage.getItem( 'wp-autosave-' + blog_id );

参考: javascriptでセッション?HTML5 SessionStorageの使い方

PHP: 配列操作メモ

配列の操作方法について調べてみた.
最近の言語は,map とか filter とか最初からありますね.
PHP コードの動作確認は,PaizaCloud が便利.
PHP にはプレイグラウンド的なものは,ほかにないのかなー.

1
2
3
4
5
6
7
8
9
10
11
// 配列の生成
$args = array();
$args = [];
$args = ["aaa", "bbb", "ccc"];
 
// ループでの処理
foreach ($args as $key => $value) {
    echo "キー : " . $key . "\n";
    echo "値 : " . $value . "\n";
    echo "\n";
}

is_array — 変数が配列かどうかを検査する

array_push — 一つ以上の要素を配列の最後に追加する
array_pop — 配列の末尾から要素を取り除く

array_unshift — 一つ以上の要素を配列の最初に加える
array_shift – 配列の先頭から要素を一つ取り出す
array_slice — 配列の一部を展開する(例: 0番目から2つとか)

array_merge — ひとつまたは複数の配列をマージする
in_array — 配列の要素に特定の値を含むものがあるか
array_column — 多次元配列から特定のキーの値、キー名で返す
array_map — 配列の要素全てに特定の処理
array_filter — 特定の条件の要素のみの絞り込み
array_multisort — 多次元配列での各配列の特定要素を用いてのソート

参考: PHPでよく使う配列操作まとめ
参考: [PHP] 配列・連想配列の初期化、結合、追加

PHP: exit / die どちらを使えばいいの?

exit と die は言語仕様に違いはないとのこと.
では,どちらを使用した方が良いかというと,個人的には exit() を使用したいと思います.
他のプログラミング言語にも同様な関数が提供されていますし,動作仕様も想像しやすいと思われるためです.

個人的には,こういう独自仕様というか,文化はあまり…良いとは思いませんね.
ですが,WordPress のコードをみていると,wp_die() というのが出てきます.
PHP の文化では,プログラム終了は die の方がしっくりくるのかなー.

PHP: echo / print / print_r / var_dump / var_export などありますが…どれ使えばいいの?

PHPって変数の中身を参照する関数がたくさんありますが,どれを使用すれば良いのか?考えてみました.

出力結果の書式,内容を参照して考えると…

変数の中身みるだけなら echo
デバッグ時などで,型情報もみる必要があるなら var_dump
って感じで良いのではないかと考えています.

なんで,こんなに沢山あるのかな?