Pochipp(ポチップ)で商品を検索するたびに、「登録済み商品を検索」タブが開いてAmazonタブに切り替える——この1クリック、地味にストレスではないでしょうか。
記事を書きながら商品リンクを挿入する作業では、ほとんどの場合「Amazonで検索」か「楽天市場で検索」を使います。それなのに毎回デフォルトで開くのは使わない「登録済み商品を検索」タブ。WordPress.orgのレビューでも同じ不満の声が上がっていますが、Pochippの設定画面にはこのデフォルトタブを変更する項目がありません。
この記事では、Pochippの本体ファイルを一切変更せずに、商品検索ポップアップのデフォルトタブを「Amazonで検索」に変更する方法を解説します。PHPファイルを1つ設置するだけで完了し、Pochippのアップデートにも影響されません。
Pochippの「登録済み商品を検索」タブが毎回開く問題
なぜデフォルトが「登録済み商品を検索」なのか
Pochippの商品検索ポップアップは、WordPress標準のThickboxというiframe式のモーダルウィンドウで表示されています。このモーダルを開くとき、iframe URLのtab=パラメータで初期表示するタブが指定されており、その値がpochipp_search_registerd(登録済み商品を検索)にハードコードされています。
つまり、Pochippのプログラム側で「最初に開くタブは登録済み商品」と決め打ちされている状態です。
設定画面からは変更できない
Pochipp公式サイトのカスタマイズ項目や管理画面の設定を確認しても、デフォルトタブを変更するオプションは存在しません。ボタンの色やテキスト、セール情報の表示などは設定できますが、検索ポップアップのタブ順序は対象外です。
テーマ側のfunctions.phpやカスタムCSSでも対応できない領域のため、別のアプローチが必要になります。
Pochippのデフォルトタブをmu-pluginで変更する方法
mu-plugin(Must-Use Plugin)とは
mu-plugin(Must-Use Plugin) は、WordPressのwp-content/mu-plugins/フォルダに設置するだけで自動的に有効化されるプラグインです。通常のプラグインと異なり、管理画面から無効化できず、WordPress本体やテーマの読み込みより前に実行されます。
今回のカスタマイズにmu-pluginを使う理由:
- ⚡ Pochipp本体のファイルを一切変更しないため、アップデートの影響を受けない
- ⚡ ファイルを1つ置くだけで有効化され、管理画面での操作が不要
- ⚡ 不要になったらファイルを削除するだけで元に戻る
mu-pluginの仕様について詳しくは、WordPress公式のMust Use Pluginsドキュメントを参照してください。
完成コードと設置手順
以下のコードをpochipp-default-amazon-tab.phpというファイル名で保存し、wp-content/mu-plugins/に設置します。
php
<?php
/**
* Plugin Name: Pochipp - Amazonタブをデフォルトにする
* Description: Pochippの商品検索ポップアップで「Amazonで検索」タブを初期表示にする
* Version: 2.0
* Author: KW
*
* 設置場所: wp-content/mu-plugins/pochipp-default-amazon-tab.php
* ※ mu-pluginsフォルダがなければ作成する
* ※ プラグインの更新に影響されない
*/
defined('ABSPATH') || exit;
add_action('admin_footer', function () {
?>
<script>
(function() {
'use strict';
/**
* PochippはThickbox(tb_show)でモーダルを開く。
* iframe URLの tab=pochipp_search_registerd を
* tab=pochipp_search_amazon に書き換えるだけ。
*/
function wrapTbShow() {
if (typeof window.tb_show !== 'function') return false;
if (window.tb_show.__pochippPatched) return true; // 二重ラップ防止
var original = window.tb_show;
window.tb_show = function(caption, url, imageGroup) {
if (typeof url === 'string' && url.indexOf('type=pochipp') !== -1) {
url = url.replace(
'tab=pochipp_search_registerd',
'tab=pochipp_search_amazon'
);
}
return original.call(this, caption, url, imageGroup);
};
window.tb_show.__pochippPatched = true;
return true;
}
// tb_showがまだ読み込まれていない場合に備えてポーリング
if (!wrapTbShow()) {
var attempts = 0;
var interval = setInterval(function() {
if (wrapTbShow() || ++attempts > 100) {
clearInterval(interval);
}
}, 300);
}
})();
</script>
<?php
});📝 設置手順:
- 上記コードをコピーして、テキストエディタで
pochipp-default-amazon-tab.phpとして保存します - FTPまたはファイルマネージャーで、
wp-content/mu-plugins/フォルダを開きます(フォルダがなければmu-pluginsという名前で新規作成します) - 保存したPHPファイルをこのフォルダにアップロードします
- 有効化の操作は不要です(mu-pluginは設置した時点で自動的に有効になります)
動作確認の方法
ファイルを設置したら、ブロックエディタで記事の編集画面を開き、Pochippブロックの「商品を検索」ボタンをクリックしてください。
ポップアップが開いたときに、「Amazonで検索」タブが最初から選択された状態になっていれば成功です。もし変わらない場合は、ブラウザのキャッシュをクリアしてからページを再読み込みしてみてください。
デフォルトタブを楽天市場に変更したい場合
Amazonではなく楽天市場をデフォルトにしたい場合は、コード内の置換先パラメータを変更するだけで対応できます。
上記コードの以下の部分を修正してください。
php
// 変更前(Amazonをデフォルトにする場合)
'tab=pochipp_search_amazon'
// 変更後(楽天市場をデフォルトにする場合)
'tab=pochipp_search_rakuten'
各タブに対応するパラメータ値は次のとおりです。
| タブ名 | パラメータ値 |
|---|---|
| 登録済み商品を検索 | pochipp_search_registerd |
| Amazonで検索 | pochipp_search_amazon |
| 楽天市場で検索 | pochipp_search_rakuten |
なお、pochipp_search_registerdはregisteredのスペルミスですが、Pochipp側の実装がこの綴りになっているため、コード内でもそのまま使用する必要があります。
コードの仕組みと技術的な補足
Pochippのモーダル構造とタブパラメータ
Pochippの商品検索ポップアップは、Reactコンポーネントではなく、WordPress管理画面に標準搭載されているThickboxで実装されています。Thickboxはtb_show()というJavaScript関数でiframeを開く仕組みで、そのiframeのURLに含まれるtab=パラメータがデフォルトタブを決定しています。
実際のiframe URLの例:
media-upload.php?type=pochipp&at=editor&blockid=...&postid=...&tab=pochipp_search_registerd
この末尾のtab=pochipp_search_registerdを書き換えることで、初期表示タブを変更できます。
tb_show()のラップによるURL書き換え
今回のmu-pluginは、tb_show()関数をラップ(外側から包み込む)して、Pochippがモーダルを開くタイミングでURLを自動書き換えしています。
⚙️ 処理の流れ:
- 管理画面のフッターにJavaScriptを注入(
admin_footerフック) tb_show()のオリジナルの関数を保持したまま、新しい関数で上書き- 呼び出されたURLに
type=pochippが含まれる場合のみ、tab=パラメータを書き換え - それ以外のThickbox呼び出し(メディアライブラリ等)には一切影響しない
tb_showがページ読み込み時にまだ定義されていない場合に備えて、300ミリ秒間隔のポーリングで関数の存在をチェックする安全策も組み込まれています。
Pochippのアップデート時の注意点と対処法
mu-pluginとしてPochipp本体の外側に設置しているため、Pochippのアップデートでコードが消えることはありません。ただし、将来のアップデートでPochipp側のタブパラメータ名が変更された場合、書き換えが空振りする可能性はあります。
タブのパラメータ名が変わった場合の確認方法
アップデート後にデフォルトタブが戻ってしまった場合は、以下の手順で現在のパラメータ値を確認できます。
🔍 確認手順:
- ブロックエディタで記事編集画面を開き、Pochippの検索ボタンをクリックしてポップアップを表示します
- 目的のタブ(例:Amazonで検索)を手動でクリックします
- ブラウザのDevTools(F12キー)を開き、「Elements」タブに切り替えます
- iframe要素(
#TB_iframeContent)のsrc属性を確認します - URLの末尾にある
tab=の値が、そのタブの正しいパラメータ名です
確認した値でmu-pluginのコードを更新すれば、再び動作します。
まとめ
Pochippの商品検索ポップアップは、デフォルトで「登録済み商品を検索」タブが開きます。多くのユーザーが実際に使うのはAmazonや楽天市場の検索タブですが、この初期タブを変更する設定項目はPochippに用意されていません。
解決策は、wp-content/mu-plugins/にPHPファイルを1つ設置するだけです。Pochippがモーダルを開く際のURL内のタブパラメータを自動的に書き換えることで、Amazonや楽天市場のタブを初期表示にできます。mu-pluginとして実装するため、Pochippのアップデートに影響されず、不要になればファイルを削除するだけで元に戻ります。
コードを書けなくても、この記事のPHPファイルをそのまま設置すれば動作します。毎回のタブ切り替えを解消して、記事制作の効率を上げてください。
よくある質問
- Pochipp Proでもこの方法は使えますか?
-
はい、使えます。Pochipp ProもPochipp無料版と同じThickboxベースのモーダルを使用しており、タブパラメータの構造は共通です。
- mu-pluginsフォルダがない場合はどうすればいいですか?
-
wp-content/の直下にmu-pluginsという名前のフォルダを新規作成してください。WordPressの初期状態ではこのフォルダは存在しないため、手動で作成する必要があります。 - コードを設置したのにデフォルトタブが変わりません
-
まずブラウザのキャッシュをクリアしてページを再読み込みしてください。それでも変わらない場合は、DevTools(F12)でiframeの
src属性を確認し、tab=パラメータの値がコード内の置換元と一致しているか確かめてください。 - Pochippを無効化したら影響はありますか?
-
影響はありません。このmu-pluginは、
tb_show()のURL内にtype=pochippが含まれる場合にのみ動作します。Pochippが無効化されていればその条件に合致するURLが発生しないため、他の機能に一切干渉しません。
