独自PHPにWordPressの管理バーを表示する方法


気づいたら6月は更新しないまま時間がすぎていきました。何か書きたいことがあったような気もするし、そんなに忙しかったわけでもなかった気がするんだけどなぁ……。他にやりたいことがありまして……。

今回は久しぶりにWordPressの話。WordPress以外で作ったページに、WordPressの管理バーを表示する方法について。そんな状況がはたしてどれだけあるんだとは言われそうですが、そういう業務があったので自分用にメモ。

まず調べたのが、WordPressで作ったページ以外にWordPressの機能を使う方法。これはすぐに分かりました。requireでWordPressのwp-blog-header.phpを読みこめばいいとのこと。例えば、WordPressのトップディレクトリにtestディレクトリを作成して、その中に独自のPHPを入れる場合は下記のようになる。

参考:WordPressを導入したがWPではないページ(.php)にWPタグや新着一覧を表示 | Ken’s WEB

次に管理バーを表示する方法を調べました。これも調べたら情報はあちこちにありました。どうやら、headタグ内に『<?php wp_head(); ?>』、bodyの閉じタグ直前に『<?php wp_footer(); ?>』を記述すればいいようです。
参考:WordPressの管理バーを表示させるためのおまじない二つ★ | oki2a24

これで表示できる! と思ったら表示されません。HTMLのコードを確認しても管理バーの記述がないので、CSSで非表示になっているわけでもないようです。ただし、body_class()で記述された中には、”admin-bar”とあります。is_admin_bar_showingという関数があるので試してみたところ、表示されてないのにtrueが返ってきました(参考:関数リファレンス/is admin bar showing – WordPress Codex 日本語版)。

ここからは根気です。管理バーを表示するコードを探して、どこから呼び出しているのかを探していきます。そうすると、『do_action( ‘admin_init’ );』を呼ぶ必要があるようだ、ということが分かりました。なぜ独自PHPではその箇所を通ってないのかまでは分からなかったのですが、コードに『do_action( ‘admin_init’ );』を追加してなんとか管理バーを表示することができました。。(2015/07/08修正)『do_action( ‘admin_init’ );』だと、余計な関数まで動いてしまうことが分かりました。実際に管理バーを表示するだけなら、『_wp_admin_bar_init();』を呼ぶだけでよさそうです。

以下、最低限のサンプルコード

ここで、『status_header( 200 );』を呼んでいる理由ですが、これがなかったらなぜかHTTPステータスが404となりました(一見、ちゃんと表示しているように見えるのですが、HTTPステータスを確認すると404でした)。どこが原因で404となっているのかは分からなかったのですが、とりあえずstatus_header関数を呼ぶことでHTTPステータスを200にすることができました。ただし、bodyタグにerror404というクラスが残ったままなので、根本的な解決にはなっていないかもしれません。

コードハイライト用のプラグインを『Crayon Syntax Highlighter』に変更してみました


前からコードハイライト用のプラグインには『WP-Sysntax』を使っていたのですが、自分が最近よく書く『R』には対応していないため、Rに対応しているプラグインを探して変更することにしました。
そこで見つけたのが、『Crayon Syntax Highlighter』(参考:[Å]【WP】ソースを紹介するプラグイン「Crayon Syntax Highlighter」に変更したので設定メモ | あかめ女子のwebメモ)

使い方はいろいろあるようだけど、どうやら下記のように、preタグの中にclassを書き、その中に言語の設定をするらしい。

ちなみに、WP-Syntaxでは、

と、lang属性内の中に言語を指定していました。

これぐらいなら変更も簡単にできそうだと思い、一括置換プラグインを探して見つけたのが、『Search Regex』というプラグイン(参考:【WordPress】全記事から検索して一括置換出来るプラグイン「Search Regex」が素晴らしい | nori510.com)
で、早速過去記事も含めてやってしまおうか。と思ったのですが・・・。

なんと、よくよく過去記事を見なおしてみると、全部『Crayon Syntax Highlighter』のコードハイライトになっていました。どうやら、lang属性内に書いても適用されるようです。
せっかく『変更するためにやったこと』を書こうと思ったのに、何もしなくてすんだようです。

と思ったのですが、どうやらpreタグで囲んだだけで『Crayon Syntax Highlighter』のコードハイライトが自動で適用されてしまっているよう。以下は、”<pre>あいうえおかきくけこ</pre>”と書いた結果。

うーん。preタグなんて多分使わないだそうし、まあいっか。

もうちょっと試してみようと、”<pre lang=”html”>あいうえおかきくけこ</pre>”と書いたら以下のような結果に。

ツールバーに”XHTML”という表示が加わりました。どうやら、lang属性内で書いた言語を認識してはくれているようです。

このブログで現在使用しているWordPressプラグイン23個まとめ


自分用メモ。プラグインの説明文を見ても、だいたいが英語なのでいったいどれが何なのか分からなくなってしまうことがあるので・・・。参考になる日本語で紹介してるウェブページと、インストールページのリンク付き。

AddQuicktag

投稿画面にある<b>とか<i>とかのボタンに、独自のボタンを増やすプラグイン。とりあえず、後で紹介する”Lightbox 2″と”WP-Syntax”用のボタンを追加してる。
お手軽WordPress Tips:コンテンツをサクッと表示させるショートコードを作る & 超絶便利プラグインAddQuicktag – かちびと. net
WordPress › AddQuicktag « WordPress Plugins

Adminer(データベース管理)

phpMyadminを使わず、直接データベースを編集するプラグイン。自分の環境では日本語の説明文と名前になっている。まだちゃんと使ったことはない。正直、どういう経緯で入れたのかすら覚えてない・・・。多分、そのうち使う。
ワードプレス プラグイン Adminer
WordPress › Adminer « WordPress Plugins

Akismet

WordPressに最初から入っている、セキュリティ系プラグイン。登録画面が英語ばかりで最初戸惑った覚えが・・・。
Akismetの使い方とAPIキーの取得方法 – WordPressのプラグイン | コメントスパム対策 | SEOテンプレート比較
WordPress › Akismet « WordPress Plugins

Breadcrumb NavXT

パンくずリスト(階層)表示用。今のところ、ここのブログだと記事エントリーページにしか表示されないように設定。ただたんに上のオレンジの部分の左側に何か入れたいと思って導入した。
Breadcrumb NavXTでパンくずリストを表示 | WPカスタマイズ備忘録
WordPress › Breadcrumb NavXT « WordPress Plugins

Broken Link Checker

リンク切れをチェックしてくれるプラグイン。もうちょっと投稿数増えてから入れようと思ったけど、忘れそうなので入れておいた。
Broken Link Checker(リンク切れ確認用プラグイン)の導入方法と使い方
WordPress › Broken Link Checker « WordPress Plugins

Custom CSS and JavaScript

カスタムフィールドを用いて、CSSやJavaScriptを追加できるプラグイン。いつもCSSやJavaScriptの記事を書くときに、例を書くのに困っていたので導入。今までCSSだとテーマのstyle.cssを編集したり、タグに直接記入していた。JavaScriptは投稿の最後に書いてた(多分、やっちゃいけない)。
WordPressの記事ごとに個別のCSS, JavaScriptを追加できるプラグイン -Custom CSS and JS | コリス
WordPress › Custom CSS and JS « WordPress Plugins

Exec-PHP

記事内でもPHPを実行することができるプラグイン。まだ使ってない。試しに使ってみる。

PHPのバージョン:5.3.3
 できた。
WordPressの記事内でPHPを実行するプラグイン、Exec-PHP – ミblog : レビューや日常など
WordPress › Exec-PHP « WordPress Plugins

Executable PHP widget(PHP Code Widget)

ウィジェットにPHPを実行できるプラグイン。名称が二つあるようで、最初検索してもよく分かりませんでした。今も使ってるのですが、なぜかPHPは使ってません・・・。テキストウィジェットの存在に気付かなかった・・・。
PHP Code Widget – ウィジェット(Widget)サイドバーでPHPを使えるようにするプラグイン
WordPress › PHP Code Widget « WordPress Plugins

Google Analytics for WordPress

WordPressのページのコードに、自動的にGoogle Analyticsコードを埋め込んでくれるプラグイン。いろいろ設定項目があるけど、正直まだよく分かってない。
Google Analytics for WordPress | プラグイン | WordPressの歩き方
WordPress › Google Analytics for WordPress « WordPress Plugins

Google XML Sitemaps

sitemap.xmlを自動で作成してくれるプラグイン。更新すると、検索エンジンに通知してくれるらしい。
【Google XML Sitemaps】sitemap.xmlを自動作成し、サイトマップ登録がスムーズに完了するプラグイン – ひなログ
WordPress › Google XML Sitemaps « WordPress Plugins

Head Cleaner

<head>内や、フッタ領域を整形してくれるプラグイン。表示が速くなるらしい。
Head Cleaner – サイトのヘッダとフッタを整形し最適化&高速化を行うプラグイン
WordPress › Head Cleaner « WordPress Plugins

HeadSpace2

SEO系のWordPressプラグイン。最初使い方分からなくて、間違えてすべてのページのタイトル(<title>内)をブログタイトル名と同じにしてしまった。有名な『All-in-one SEO Pack』よりいいとも聞いたので導入したのだけれども、まだあまり活用できていない。
WordPressのSEOに千手観音プラグイン、HeadSpace2・使用方法まとめ – かちびと. net
WordPress › HeadSpace2 SEO « WordPress Plugins

Lightbox 2

画像をクリックすると、実際の大きさの画像が前面に表示されるプラグイン。言葉で説明するのは難しいので、下の画像をクリックしてみてください。
一
こんな感じです。
クリックするとギューンと画像が大きくなるWordPressのプラグイン「Lightbox 2」の使い方 – オレンヂ
WordPress › Lightbox 2 « WordPress Plugins

MO Cache

.moファイル(翻訳ファイル)のキャッシュを作成するプラグイン。
WordPress をたった3分で3倍高速化する方法 [MO Cache] – カワイイはつくれる
WordPress › MO Cache « WordPress Plugins

RSS Footer

RSSフィードの最後に、ブログタイトルなどを載せるプラグイン。コピーブログ効果があるんだとか。一応、そういうサイトにパクられるような記事を書いていこうとは思っているので・・・。
RSS FooterでWordPressのRSSに情報を入れてコピーブログを防ぐ | 秋元
WordPress › RSS Footer « WordPress Plugins

Search Meter

ブログ内検索で何が検索されたか分かるプラグイン。今回整理していて存在を思い出した。けど、今見てみたら”Summary”に何も表示されないほど、ほとんど検索されてなかった・・・。
ワードプレス プラグイン Search Meter
WordPress › Search Meter « WordPress Plugins

Twitter Goodies

Twitterを表示するプラグイン。右のサイドバーにあるやつ。
Twitter Goodies Twitterを表示するプラグイン | tomoがWordPressを使ってみる
Twitter Goodies(ツイッターボタン/ウィジェット)の日本語説明 | WordPressのプラグインを使い倒そう!
WordPress › Twitter Goodies « WordPress Plugins

WP-DBManager

データベースの内容をバックアップするプラグイン。便利そうと思っていれたものの、まだちゃんと使ってはない。
バックアップ用プラグイン WP-DBManager
WordPress › WP-DBManager « WordPress Plugins

WP-Syntax

ソースコードをそれらしく表示してくれるプラグイン。

こんな感じで。
WP-Syntax | ソースコードをハイライト表示 WordPressプラグイン
WordPress › WP-Syntax « WordPress Plugins

WP File Cache

高速化用プログライン。上にも書いた、WordPress をたった3分で3倍高速化する方法 [MO Cache] – カワイイはつくれるで知った。
WordPress Plugin WP File Cache 使用報告 | mrta26.com
WordPress › WP File Cache « WordPress Plugins

WP Multibyte Patch

WordPress日本語版に初めから同梱されているプラグイン。マルチバイト文字に対応してくれているらしい。
WP Multibyte Patch | EastCoder;

WP Social Bookmarking Light

ソーシャルブックマーク等のボタンを設置してくれるプラグイン。エントリー記事の上のほうにつけてます。
Twitterやはてなブックマーク、Facebookボタンをブログに設置する方法 – WordPressのプラグイン | WP Social Bookmarking Lightの使い方 | SEOテンプレート比較
WordPress › WP Social Bookmarking Light « WordPress Plugins

WP to Twitter

WordPressに記事を投稿すると自動でTwitterに投稿してくれるプラグイン。他にもいろいろ試してみたのだけれども、うまく投稿できなかった。
Re: » WPとtwitterを連携させるプラグインWP to twitter
WordPress › WP to Twitter « WordPress Plugins

整理してみて思ったけど、これって別に必要なくないかと思うプラグラインもいくつか・・・。使ってないのは早く使うかアンインストールするかしろよと自己突っ込み。後、英語読めるようになれよと。