【ワードプレス】テーマ変更でカスタム投稿タイプを引き継ぐ方法

はるるるr

カスタム投稿タイプとタクソノミーの重要性

WordPressサイトを運営する中で、カスタム投稿タイプとタクソノミーの設定は重要な要素の一つです。

特に、特定のコンテンツを整理し、効率的に管理するために役立ちます。

しかし、テーマを変更すると、これらのカスタム投稿タイプやタクソノミーが消えてしまうことがあります。

この問題に対処するための方法を解説します。

カスタム投稿タイプとタクソノミーの登録

まず、以下のようにカスタム投稿タイプとタクソノミーを登録するコードをfunctions.phpに追加することで、テーマに依存せずにカスタム設定を保持することができます。

// 初期化アクションにカスタム投稿タイプとタクソノミーの登録関数をフック
add_action('init', 'register_custom_post_types_and_taxonomies');

function register_custom_post_types_and_taxonomies() {
// カスタムタクソノミーの登録(カテゴリー)
register_taxonomy('category-news', 'post', array(
'label' => 'カテゴリー', // 管理画面で表示される名前
'hierarchical' => true, // 階層構造(カテゴリのような)を持つかどうか
'public' => true, // タクソノミーが公開されているかどうか
'show_in_rest' => true, // REST APIに表示するかどうか(Gutenbergエディタをサポート)
));

// カスタム投稿タイプの登録(お知らせ)
register_post_type('news', array(
'label' => 'お知らせ', // 管理画面で表示される名前
'public' => true, // 投稿タイプが公開されているかどうか
'has_archive' => true, // アーカイブページを持つかどうか
'show_in_rest' => true, // REST APIに表示するかどうか(Gutenbergエディタをサポート)
'menu_position' => 5, // 管理画面メニューの表示位置
'supports' => array('title', 'editor', 'thumbnail', 'revisions'), // サポートする機能
));

// お知らせ投稿タイプ用のカスタムタクソノミーの登録(カテゴリー)
register_taxonomy('news-cat', 'news', array(
'label' => 'カテゴリー', // 管理画面で表示される名前
'hierarchical' => true, // 階層構造(カテゴリのような)を持つかどうか
'public' => true, // タクソノミーが公開されているかどうか
'show_in_rest' => true, // REST APIに表示するかどうか(Gutenbergエディタをサポート)
));

// お知らせ投稿タイプ用のカスタムタクソノミーの登録(タグ)
register_taxonomy('news-tag', 'news', array(
'label' => 'タグ', // 管理画面で表示される名前
'hierarchical' => false, // 階層構造を持たない(タグのような)かどうか
'public' => true, // タクソノミーが公開されているかどうか
'show_in_rest' => true, // REST APIに表示するかどうか(Gutenbergエディタをサポート)
'update_count_callback' => '_update_post_term_count', // 投稿数のカウントを更新するコールバック関数
));
}

プラグイン化による解決策

上記のコードはテーマのfunctions.phpに追加するものですが、テーマ変更時にコードが消えてしまうため、プラグイン化することが推奨されます。プラグインとして実装することで、テーマに依存せず、常にカスタム投稿タイプとタクソノミーを維持することができます。以下に、簡単なプラグイン化の手順を説明します。

  1. 新しいフォルダーを作成し、例えば custom-post-types-plugin という名前を付けます。
  2. そのフォルダー内に、custom-post-types-plugin.php というファイルを作成します。
  3. 先ほどのコードをそのファイルにコピーし、次のようなプラグインヘッダーを追加します。
/*
Plugin Name: Custom Post Types Plugin
Description: カスタム投稿タイプとタクソノミーを登録するプラグイン
Version: 1.0
Author: あなたの名前
*/

add_action('init', 'register_custom_post_types_and_taxonomies');
function register_custom_post_types_and_taxonomies() {
// 上記コードをここに挿入
}

プラグイン化によるメリット

これでプラグインとしてカスタム投稿タイプとタクソノミーを管理できるようになります。プラグイン化することで、テーマ変更時に設定が失われることなく、常に安定した運用が可能となります。ぜひ試してみてください。

おすすめ記事

お問い合わせ

どうやったらできるか、どんなお困りごともいっしょに考えましょう。
お気軽にお問い合わせください。

お問い合わせはこちら