【至急・重要】ウィルスチェックのお願い

Change Style


WP Plugin[改]: 管理パネルでドキュメント検索 - Search Docs(改) for WP2.7+ja

管理パネル上で 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

YOU、これも読んじゃないなYO!

  • No Related Posts

コメントをどうぞ