WP Plugin[改]: 管理パネルでドキュメント検索 - Search Docs(改) for WP2.7+ja
Responses:
- No Responses yet
- コメントをどうぞ
- Trackback URI
- RSS 2.0: 更新情報
- RSS 2.0: Comments
管理パネル上で WordPress ドキュメント(Codex)とフォーラムを検索できるプラグイン「Search Docs」。特に初心者にオススメだけどとってもマイナーなこのプラグインを、WordPress 2.7 と日本語ドキュメント&フォーラム対応に改造した。その内容をメモ。
2.7 の管理パネルの
を引っ張ると検索窓が出るようにしてみた。
変更箇所
「とりあえず動く」レベルへの改造。WP2.7 のデザインに合わせるとかも割愛。
14, 15 行目: 検索対象の変更
(修正前)
'Codex'=>array('site:codex.wordpress.org+',1,3),
'Forum'=>array('site:wordpress.org+inurl:wordpress.org/support/+-inurl:rss+',0,7),
(修正後) 最後の数字は検索結果表示なので好みで。
'Codex'=>array('site:wpdocs.sourceforge.jp+-inurl:/Template:+',1,5),
'Forum'=>array('site:ja.forums.wordpress.org+-inurl:rss+',0,7),
68行目~: 検索結果の見出しを修正
(修正前)
case 1:
$output .= '<dt><a href="'.$result['url'].'" target="codex">'.str_replace('" WordPress Codex', "", $result['title'])."</a></dt>\n<dd>".str_replace($results_replace, '', $result['summary'])."</dd>\n";
break;
default:
$output .= '<dt class="forum"><a href="'.$result['url'].'" target="codex">'.str_replace('" WordPress Support', "", $result['title'])."</a></dt>\n";
break;
(修正後)
case 1:
$output .= '<dt><a href="'.$result['url'].'" target="codex">'.str_replace(' - WordPress Codex 日本語版', "", $result['title'])."</a></dt>\n<dd>".str_replace($results_replace, '', $result['summary'])."</dd>\n";
break;
default:
$output .= '<dt class="forum"><a href="'.$result['url'].'" target="codex">'.str_replace('WordPress " フォーラム " ', "", $result['title'])."</a></dt>\n";
break;
110~128行目: echo せずに値を返すように変更
(修正前)
function codex_box() {
(中略)
echo '</form><iframe src="about:blank" id="codex_frame"></iframe>
(修正後)
function codex_box( $contextual_help ) {
$new_contextual_help = "";
$new_contextual_help .= '<form action="" method="post" id="codex-search" onsubmit="return codex_search();">
<input id="codex_keywords" name="codex_keywords" type="text" value="' . $_POST['codex_keywords'] . '"/><input type="submit" name="codex_submit" id="codex_submit" class="button" value="'.__('Search').'" />
';
if(isset($_POST['codex_keywords'])) {
$results = codex_search_results($_POST['codex_keywords']);
$new_contextual_help .= "<div id=\"codex_search_results\">\n";
$new_contextual_help .= "<a href=\"#\" onclick=\"document.getElementById('codex_search_results').style.display = 'none';\" style=\"float:right;\">Hide Results</a>";
$new_contextual_help .= "<dl>\n";
foreach($results as $result) {
$new_contextual_help .= "<dt><a href=\"{$result['url']}\" target=\"codex\">{$result['title']}</a></dt>\n<dd>{$result['summary']}</dd>\n";
}
$new_contextual_help .= "</dl>\n";
$new_contextual_help .= "</div>";
}
$pbasename = preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', __FILE__);
$new_contextual_help .= '</form><iframe src="about:blank" id="codex_frame"></iframe>
元151行目(上記差し替え後 152行目)、codex_box() 関数の終わりの } の前に 2行挿入。
$new_contextual_help .= $contextual_help;
return $new_contextual_help;
元195行目: 検索結果が隠れないようにする。
(上記変更後 199行目)
#codex_search_results { } 内の最後あたりに z-index: 100; を追加
投稿画面などでドラッグ&ドロップできるボックスがあると、それの下に隠れてしまうので、上に表示するもの。
元243行目: Help タブ内に表示
(上記変更後 247行目)
(修正前) add_action('admin_footer', 'codex_box');
(修正後) add_action('contextual_help', 'codex_box');
心残り
- 本当は、検索対象を横断検索にしたい。
が、Yahoo! の検索 API を使っているみたいなので、難しそう。。日本語Codex だけだと存在しないページもまだまだ多いので、せめて Codex の検索対象を英語版との 2サイトに増やせればなー。 - 日本語化。トライはしてみたが上手く動作できなかった。orz



