フロントエンドでなんとかがんばっていくブログ

WordPress【WordPress】タクソノミーの名前を変更する方法

2021/04/04

こちらは、タクソノミーのリンクを変更する方法ではなく、タクソノミーの名称自体を変更する方法になります。

タクソノミーの名称は基本的に途中で変更は出来ないのですが、データベースを直接操作すれば変えることが出来ます。
データベースを直接操作した事がなくても、手順としては難しくありません。

データベースに接続する

まずはデータベースにSSHで接続します。
接続する際の「ユーザ名・パスワード・ホスト名・テーブル名」は、wp-config.php の MySQL settings に記載があるので確認してください。

// ** MySQL settings ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'local' );

/** MySQL database username */
define( 'DB_USER', 'root' );

/** MySQL database password */
define( 'DB_PASSWORD', 'pass' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );


上記の場合のコマンドは下記になります。

mysql -u root -p -h localhost

※ ホストが localhost の場合、-h localhost は省略可能です。

続けて、パスワードの入力を求められるので入力します。

Enter password: pass


接続が完了したら、データベースを選択します。

mysql > use local;


データベースを更新する

更新するテーブルは wp_term_taxonomy テーブルになります。

テーブルのデータを確認してみます。

mysql > SELECT * from wp_term_taxonomy;


taxonomy の列に表示されているデータがタクソノミーの名称になります。

そして、データを更新します。
categoriesnews_categories に更新する場合のSQL文は下記になります。

mysql > UPDATE wp_term_taxonomy SET taxonomy = 'news_categories' WHERE taxonomy = 'categories';


function.php の該当箇所を修正する


テーマファイルの該当箇所も修正します。

下記は、カスタム投稿タイプ news の場合の例になります。

register_taxonomy('categories', 'news', $args);

register_taxonomy('news_categories', 'news', $args);


その他テンプレートの該当箇所を修正する

その他にもテーマ内にタクソノミー名を使用している箇所がないか全検索して修正しておきましょう。

最後に

データベースをSQLコマンドで更新するのはあまりやらない事かもしれませんが、今回の作業的にはそれほど難しいことではありません。
また、出来れば初期構築段階でタクソノミー名をよく考えてつけることも大事です。