【WordPress】メタ情報のカスタマイズ

ハローエヴリバディ。
あまがいひろしです(・∀・)。

さっきリンナイのサービスさんが来て、
ガスヒーターのリコール部品とっかえていきました。
使ってないのに申し訳ないですね(´・ω・`)。

それはさておきWordPressのカスタマイズ。
内容のないうんこみたいなブログ書いてても仕方ないので、
今日朝からやった作業の技術情報でも投稿しようかと。

結論から言うと、WIDGETのメタ情報から要らん項目を消しました。

WordPressをご利用の方は既にご存じだと思いますが、
テーマをインストールした後、手作業で子テーマ作ったかと思います。
(もしくは子テーマもFTPでコピーなどなど)

基本カスタマイズはこの子テーマに施します。
そうする事によって、親テーマがアップデートされても、
自前のカスタマイズ内容が消えません。

というのは、理解していたんですが、いもけん!は徹夜の突貫工事で作ったもんで、
親テーマどころかWPの実装箇所までいじっちゃいました。

これではテーマの更新はおろか、WPの更新ですらカスタマイズ内容が消えます。
おじさんの記憶なんて脆いので、毎回直すのも無理です。
どこ直したかの記憶も消えますので。

んで、当初は下記パス、
\wp\wp-includes\widgets\class-wp-widget-meta.php
を、直接編集してHTMLの出力箇所を削ってしまっていたんですが、
前述のように、子テーマの範囲ではないのでWordPressのバージョンアップごとに、
毎回手直しする必要が出てきます。

それではあまりにもイケてない。

いろいろ調査したところ、メタ情報をWIDGET化して、
FUNCTIONS.PHPに取り出してしまえばいいそう。

class Custom_Widget_Meta extends WP_Widget {
    function __construct() {
        parent::__construct(false,'MyMetaInfo');
    }
    function widget($args, $instance) {
      ?>
      
        <aside id="meta-4" class="widget widget_meta">
            <h1 class="widget-title">■MANAGEMENT■</h1>
            <div>
                <ul>
                <?php wp_register(); ?>
                <li><?php wp_loginout(); ?></li>
                </ul>
            </div>
        </aside>
      <?php
    }
}
add_action('widgets_init', create_function('', 'return register_widget("Custom_Widget_Meta");'));

CSSのセレクタを自分のページ向けにカスタマイズ済みのものに差し替え、
functions.phpに記述してFTPで子テーマにアップロードします。

管理画面に追記したMyMetaInfoというのが追加されているので、
それを他のwidget同様、任意の場所に配置して保存すればwidgetとしてロードされます。

この手法はいろいろと応用できそうですね。

特に問題がなければ、この先は読む必要ないんですが、
ちょっとやらかしてました。サンプルコードに記述した■が化けるんです。

SJISじゃあるまいしなんで化けんのさって思いながら、いろいろググってみたんですが、
なんか特に該当する問題もなさそう。

おかしいわねーと思いながら、
ふとエディタの右下見たらfunctions.phpがSJISでしれっと動いてました…

ちょっと何してくれてんのキミィ(・∀・)!

エンコード変更して再保存してFTPしときました(・∀・)。

 

ソースコード埋め込むのに1時間ぐらいかかりました(´・ω・`)。
最初にヒットしたプラグイン入れたら、(´・ω・`)がエスケープされずに
化け化けに(´・ω・`)。

以上、(・∀・)ノシ

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