カスタム投稿タイプと分類の名前を変更する


31

12種類以上のカスタム投稿タイプを備えたサイトの開発を開始しました。表示値だけでなく、実際のカスタム投稿タイプ名のいくつかを変更したいと思います。ただし、SQL更新クエリを実行するだけで、変更したりシリアル化されたデータの一部を上書きしたりする必要がある場所を見逃すことが心配です。すでに3,000を超えるアイテムを入力したため、クリーンなデータベースで再起動することはできません。

カスタム投稿タイプの名前を変更する最良の方法は何でしょうか?分類法の名前を変更してはどうですか?


同様に、カスタム.htaccess書き換えルールに関する質問もあります。データベースを詰まらせる残りのルールがたくさんありますか?まだサイトを立ち上げていないので、古いリンクをリダイレクトする必要はありません。
デレクパーキンス

回答:


47

投稿の名前を変更するためのSQLクエリ:

UPDATE  `wp_posts` SET  `post_type` =  '<new post type name>' WHERE  `post_type` = '<old post type name>';

分類法の名前を変更するためのSQLクエリ:

UPDATE  `wp_term_taxonomy` SET  `taxonomy` =  '<new taxonomy name>' WHERE  `taxonomy` = '<old taxonomy name>';

これですべてのデータベース領域が処理されます。投稿タイプまたは分類法が登録されているコードの新しい名前と一致することを忘れないでください。私の知る限り、これはまだどのプラグインでも処理されていません。


9
優秀な答え、まさに私が必要としたもの。クエリを実行してコードを更新した後、基本的には機能していましたが、個々のコンテンツアイテムのページにアクセスしようとすると404エラーが発生しました。パーマリンクキャッシュをリセットする必要があると思います。[ツール]> [パーマリンク]に移動して[保存]をクリックすると、詳細ページが機能し始めました。
アンディギースラー

これを行ったとき、guidフィールドも更新しました。これにより、@ AndyGieslerが述べたようにパーマリンクを再生成する必要がなくなります。UPDATEステートメントに以下を含めるだけです:guid = REPLACE(guid、 '<old post type name>'、 '<new post type name>')
rinogo

rinogoのコメントにもう少し情報を追加するために、これはguidを更新するための少し安全な方法です:UPDATE wp_posts SET guid = REPLACE(guid、 'post_type = <old post type name>'、 'post_type = <new post type name > ');
デビッド

マルチサイトで実行する場合はテーブル名を監視する必要があることに注意してください
acSlater

6

こんにちは@Derek Perkins:

一般に、@ John P Blochの答えはスポットスポットですが、注意が必要です。プラグインとカスタムテーマは投稿タイプ情報を保存できるため、データを破損しないようにするには、プラグインとテーマに投稿タイプが保存されないようにするか、データを更新する必要があります。同様に。

使用しているプラ​​グインを教えてください。


それは良い点です。私はテーマのカスタムを構築しているので、コードを徹底的に変更する必要があります。ただし、カスタム投稿タイプ情報を保存しているプラ​​グインはありません。
デレクパーキンス

これは良い点です。私は高度なカスタムフィールドを使用していましたが、その投稿に関連付けられた各フィールドグループについて、新しいCPT名に手動でリセットする必要があります。その後は正常に動作します。
クリス・レイ

4

SQLクエリを自分で手動で実行する必要がない場合は、使用できるプラグインがいくつかあります。

投稿タイプの変換を使用して投稿を一括変更しました。

個々の投稿を変換するには、Post Type Switcherの方が適しています。


これらのリンクを投稿していただきありがとうございます。SQLクエリを自分で実行しても問題ありませんが、この投稿に出くわした他の人にとっては間違いなく役立つでしょう。
デレクパーキンス

これは、投稿の種類を変換するようで、名前を変更しないようです
vladkras
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.