LoginSignup
5
2

WordPressの関数が酷い

Last updated at Posted at 2018-03-02

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
  1. プルリクしたら、"我々はPHP5.2をサポートする必要がある"って返事があった。

  2. スペース派には、2・4・8と三流派あります。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2