「php」タグアーカイブ

wordpress – query posts – orderby – 記事の検索条件

テンプレートタグ/query posts – WordPress Codex 日本語版

スニペット

'none' - 順番指定なし(バージョン 2.8 以降のみ)
'ID' - ポストID
'author' - 投稿者名
'title' - 記事タイトル
'date' - 投稿日時
'modified' - 記事の更新日付
'parent' - 親順に並べる。記事、ページに親関係が設定されていた場合、その親IDが基準となる。
'rand' - ランダム
'comment_count' - コメント数で並べ替え
'menu_order' - おそらく固定ページ作成の時に利用する「順列」を基準にするのだと思われる。

//↓利用する場合はカスタムフィールドによる検索条件を事前に組む必要がある↓
'meta_value' - カスタムフィールド内の値
'meta_value_num' - カスタムフィールド内の値を数字として認識

頻繁に使う割りに毎回調べている気がするのでまとめる。
「none」の利用方法がよくわからないが、mysqlに入っているものを順番に抜き出す、という意味なのだろうか。

php – safe_getEncoding($str, ‘hoge’) – 文字列のエンコーディングを調べる

PHP 文字コードの取得 | HAPPY*TRAP

上記サイト様より引用コード。

上記サイト様も引用による紹介だったが、本元が繋がらなくなっているようなので。

スニペット

function safe_getEncoding($str, $default='auto')
{
	foreach (array('EUC-JP', 'SJIS', 'UTF-8') as $charset) {
		if ($str == mb_convert_encoding($str, $charset, $charset)) {
			return $charset;
		}
	}

	return $default;
}

「mb_convert_encoding」の挙動は本当に困りもので、最初の文字が1バイト文字、アルファベットとかだと「auto」で変換してもアスキー文字として判断されるらしい。

なのでこのコードは全てに対して一度全てのエンコーディングで変換をかけて文字列のエンコーディングを返す、というなんとも漢気のあるものになっている。

mb_convert_encoding($text, 'UTF-8', safe_getEncoding($text));

.

phpGD – linebox($x1, $y1, $x2, $y2, $col) – 二点にまたがるアタリ決めのボックス

スニペット

function linebox($x1, $y1, $x2, $y2, $col) {
  global $image;
  imagesetthickness($image, 1);
  imageline($image, $x1, $y1, $x2, $y2, $col);
  imageline($image, $x2, $y1, $x1, $y2, $col);
  imageline($image, $x1, $y1, $x1, $y2, $col);
  imageline($image, $x2, $y1, $x2, $y2, $col);
  imageline($image, $x1, $y1, $x2, $y1, $col);
  imageline($image, $x1, $y2, $x2, $y2, $col);
}

二点の座標と色の指定をすることにより四角に×を入れた線画を描写する。
GDによる描写位置を探るのに便利

デモ

linebox($x=5,$y=5,$x+20,$y+20,$yellow);

この例では座標5から20の大きさの正方形を描写する形となる。

php – vdt($test) – デバック用関数

スニペット

/**
 * デバック用関数
 * @param $test
 * @param string $name
 * @return string
 */
function vbt($test, $name = "") {
  $testprint = print_r($test, true);
  ob_start();
  var_dump($test);
  $testbump = ob_get_contents();
  ob_end_clean();
  $text = <<<"EOD"
BUMP

$testbump

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

print

$testprint

end*end*end*end*end*end*end*end*end*end*end*end*end*end*end*
EOD;
  $name .= date("YmdHis");
  file_put_contents(dirname(__FILE__) . "/debug/{$name}.txt", $text, FILE_APPEND | LOCK_EX);
  return $text;
}

テーマファイルと同じ位置にあるdebug用ディレクトリにtxt形式で配列の内容を保存する。
特定変数の移り変わりを観測するのにも便利。

デモ

$dtext = vbt($_POST,"text");

第二因子に文字列を入れるとファイル名が文字列+日付時刻となる。変数に代入も可能。

php – starttime() stoptime($time) – ストップウォッチ

スニペット

/**
 * タイム計測開始
 */
function starttime() {
  return microtime(true);
}
/**
 * タイム計測終了
 */
function stoptime($time) {
  echo microtime(true) - $time;
  return;
}

マイクロタイムによる時間を記録し、差によって時間を計測する。

変数を変えれば複数箇所の計測が可能。

デモ

$time = starttime();
//実行コード
stoptime($time);

驚くほどシンプルでイカしたwordpressテーマ「wsc7」をカスタマイズしよう – その9 – 即席ウィジェットを作る

一連の記事→wordpressテーマをカスタマイズしよう Archives – aoringo works

プロデューサー! ウィジェットですよウィジェット!! のヮの

ウィジェットはとても大事です。サイドバーを彩ります。しかし自分で作るには少しハードルが高い。テヘペロ。

いちいちオプションとかくっつけたりして、なんか意味不明なコードが沢山あって。いやん、ばかん。

だからテンプレートとして簡単な即席ウィジェットを一つ持っておくと便利ですよ。

続きを読む 驚くほどシンプルでイカしたwordpressテーマ「wsc7」をカスタマイズしよう – その9 – 即席ウィジェットを作る

驚くほどシンプルでイカしたwordpressテーマ「wsc7」をカスタマイズしよう – その8 – キャッシュをクリアする

一連の記事→wordpressテーマをカスタマイズしよう Archives – aoringo works

前回でキャッシュを利用する仕組みに変更しました。一ヶ月間そのキャッシュを使い回します。

問題もあります。このままでは記事を投稿しても一ヶ月ページが変わらないんです。アッチョンブリケ

続きを読む 驚くほどシンプルでイカしたwordpressテーマ「wsc7」をカスタマイズしよう – その8 – キャッシュをクリアする

驚くほどシンプルでイカしたwordpressテーマ「wsc7」をカスタマイズしよう – その7 – キャッシュを利用する

一連の記事→wordpressテーマをカスタマイズしよう Archives – aoringo works

ワードプレスではあらゆる場所でphp関数が走ります。例えば一週間に一記事投稿するとしても、人が来る度に毎回「記事があるかどうか走査→新着分5件を表示」という動作をします。

勿体なくないですか? 検索ページなどは毎回単語が変わるのでその限りではありませんが、カテゴリ一覧、記事一覧、etc、etc、ちまたでは色々な高速ツール、プラグインを勧める記事がありますが、自身でも高速化の対策をしていく必要があります。

もしやもすると高速化プラグインには今回の記事の内容を行うモノもあるかもしれませんが、今回は自分で用意しますよ。

続きを読む 驚くほどシンプルでイカしたwordpressテーマ「wsc7」をカスタマイズしよう – その7 – キャッシュを利用する