WordPressの関数が酷い
いや、とにかく酷い。全体的に行き当たりばったり感がハンパ無い。インターネッツの技術って、こういう行き当たりばったり方式で作ったものの方が普及しちゃうよね。EMailとかFTPとかHTTPとかHTMLとかCSSとかJavaScriptとかコインチェックとか。
勢いかね?
結論 → 勢い大事
この記事について
この記事は、WordPressをCMSとして利用する開発依頼を請け、あまりにも酷い内部構造に苛立ち、その苛立ちを吐き出すためにしたためた記事である。
俺的関数一覧
WPは関数で色々と求める。クラスではない。
// カテゴリーIDからカテゴリー名を求める(その1)
$category_name = get_cat_name($category_id);
// カテゴリーIDからカテゴリー名を求める(その2)
$category_name = get_the_category_by_ID($category_id);
// カテゴリー名からカテゴリーIDを求める。
// カテゴリー名が重複していると正しく取得できない。
// サブカテゴリーでカテゴリー名が重複することがある。←これは酷い!
$category_id = get_cat_ID('FAQ');
// スラッグ名からカテゴリーIDを求める。(直接求める関数はない)
// カテゴリー名は表示に使用し、スラッグ名はURLなどで識別に使う。
$category_id = get_category_by_slug('お知らせ')->cat_ID;
バッドノウハウ
カテゴリー名が重複する場合は、スラッグ名に名前空間を自分で設定する。
例えば、サブカテゴリーが重複したら、スラッグ名に親カテゴリーも含める。
"悪"というカテゴリー名に、"evil"というスラッグ名が重複した場合
悪 → google:evil
悪 → microsoft:evil
WPをDisろう
function get_query_var( $var, $default = '' ) {
global $wp_query;
return $wp_query->get( $var, $default );
}
なんだよこのglobal
って!
私がプログラムをはじめた20年前、初めて買ったプログラム書籍「はじめてのSymantec C++」には、Global変数はバグの温床なので使ってはいけません
と書いてあった。
index.php
// テーマを使うか否か
define('WP_USE_THEMES', true);
// wp-blog-header.phpを読み込む ← おいおい
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
dirname( __FILE__ )
は __DIR__
だけで良いです。誰か指摘してあげて下さい。1
wp-blog-header.phpというファイル名に違和感を感じる人も多いだろう。内容も違和感たっぷりだ。(後日追記予定)
WPを讃えよう
- 行頭のインデントがタブ ← 正解!!ここが分からない人は老害認定されて下さい。2