Blog

ブログ

WP All Importでインポート時に特定の投稿タイプのみ選択できるようにする方法

前田 大地

記事などをインポート&エクスポートするためのWordPressプラグイン「WP All Import(Import any XML or CSV File to WordPress)」で、インポート時に特定の投稿タイプのみ選択できるようにする方法を紹介します。

やり方

// 選択項目をひとつだけ表示する
function ss_wpai_custom_types( $custom_types ) {
  $custom_types = get_post_types( array( 'name' => 'xxxx' ), 'objects' );
  return $custom_types;
}
add_filter( 'pmxi_custom_types', 'ss_wpai_custom_types', 10, 1 );

functions.phpに上記のコードを記述します。

get_post_typesのところの「xxxx」を、お好きな投稿タイプ名(投稿ならpost、固定ページならpageなど)に変えてください。

複数指定したい場合

// 選択項目を複数表示する
function ss_wpai_custom_types( $custom_types ) {
  $custom_types = array_merge(
		get_post_types( array( 'name' => 'post' ), 'objects' ),
		get_post_types( array( 'name' => 'page' ), 'objects' )
	);
  return $custom_types;
}
add_filter( 'pmxi_custom_types', 'ss_wpai_custom_types', 10, 1 );

複数の投稿タイプを指定したい場合、$custom_typesに複数の投稿タイプobjectを入れます。array_mergeでガッチャンコさせたらいけました。

pmxi_custom_typesフックについて

pmxi_custom_typesは、インポートのステップ1に出てくる投稿タイプのドロップダウンリストを変更するためのフックです。$custom_typesには、ドロップダウンリストに表示する投稿タイプのobjectが入っています。

公式ドキュメント
https://www.wpallimport.com/documentation/action-reference/#pmxi_custom_types

本来は、show_uiがfalseになっていてそのままだと表示されないカスタム投稿を手動で追加するためのフックぽいですね。
https://github.com/soflyy/wp-all-import-action-reference/issues/63

所感

インポートは、最悪、サイトが大変なことになる恐ろしいものです。もちろん、WP All Importはインポートの手順がそれなりにあり、間違える前に気付けるようにはなっています。ですが、クライアント側でインポートするような運用になってくると、常に不安がつきまといます。特定の投稿タイプでしか使わないのなら、それ以外はインポートできないようにしてしまえばいい。……というのが今回の出発点でした。WP All Importはそこそこ人気のプラグインですが、日本語の情報がほとんどないのでやり方を探すのも一苦労です。ちなみにエクスポート時のための同様のフックはありませんでした。まあ、エクスポートは、サイトがぶっ壊れることもないからいいか。

Web Designer / Developer

前田 大地

沼津高専中退。デザイン会社、システム開発会社を経てセブンシックスを設立。マーケティング、デザイン、テクノロジーに精通するオールラウンダーとして、県内の中小企業に向けた戦略型ホームページ制作を開始。一方で、都内の広告代理店からの要請で大企業案件にも多数参加。企業が本当に必要とするホームページ制作とは何か、を日々探求している。

Blog top