プラグインにオリジナル機能を追加する


WordPressで欲しい機能のためにプラグインを導入したものの、微妙に要件を満たしてないという問題が発生。

受託開発のサイトの場合、様々な要望に対応するため、wp_tag_cloud()のようにHTMLタグも吐き出されるテンプレートタグでは不便なことがある。そういう場合はPHP関数形式のタグがあれば便利なのだが、特にプラグインではPHP関数形式のテンプレートタグがない。

3時間悩んだ末の解決策が、プラグインファイルのクラスを継承して新しいクラスを作り、PHP関数形式で値を返すメソッドを作成するという苦肉の策。

class 苦肉の策クラス extends プラグインで実装されているクラス {
	function 勝手に追加したメソッド() {
		処理
	}
}

$変数に入れます = new 苦肉の策クラス();

function メソッド呼び出し用関数() {
	global $変数に入れます;
	return $変数に入れます->勝手に追加したメソッド();
	// ↑今回はIDを配列で返すようにしてみました。
}

これでとりあえず必要な関数はできたので、めでたくテンプレートの中で使えるようになったわけだが…
上記のクラスもテンプレートに書いてあるという不格好さ。

まぁとりあえずこうしておけば、プラグインがアップデートしたときでも、もとになるクラスが消えてなければ大丈夫だと思うのだが。もっとスマートなやり方がないもんかな。

【追記】

index.phpでうまくいったと思ったら、他のテンプレートではFatal error
もう少し考える必要がありそうだ。

【追記2】

結局プラグインファイルに上記のクラスを追記。何がいけないのか???

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です