WordPress を 3.1 にするとカスタム投稿タイプが表示されない


という状態になりました。いろいろやってみた結果「カスタム投稿タイプ名に大文字が入っていた」ことが原因でした。なのでデータベースから各記事の post_type を書き換えて解決。以下はいろいろやってみた経過です。

まずは現象。カスタムメニューを使ってサイドバーへ表示していたリンクから記事が表示出来なくなります。同時に管理画面のカスタム投稿タイプ内の該当記事一覧から「表示」以外のメニューが消え、表示のリンクをクリックしても 404 な画面が帰ってきます。つまり編集も削除も表示も出来ない状態に。

というわけで最初にやってみたのは新規記事の追加。追加した記事は表示も編集も削除も出来たので、カスタム投稿タイプの機能自体が動いていることは確認出来ました。

次にやったのはダウングレード。ファイルを 3.0.6 のもので上書きしてデータベースを 3.0.6 のモノへ。するとこれまで通り表示されます。ということで再度 3.1 へアップグレードするとやっぱりダメ。アップグレードで動きが変わるみたいです。

ついでにというかある意味偶然確認したんですが、先ほど追加した新規記事は 3.0.6 では編集も削除も表示も出来ない状態になります。逆に 3.1 へアップグレードすると今度は新規記事が表示可能になって、既存の記事が表示不可に。

ここで wp_posts 内のレコードを見比べてみると既存の記事の post_type は大文字混在、新規記事は小文字のみになっているの気づきました。ということで小文字に統一してみたら解決したというわけです。

いちおうカスタム投稿タイプを設定しているプラグイン Custom Post Type UI の設定値を調べてみたところ大文字混在で登録されてました。それで動いてる(管理画面にメニューが追加されて該当記事の一覧までは表示される)ってコトは記事を表示したり編集したりする部分だけ大文字を使わず小文字だけを使うように変更されたのかもしれません。

というかみんな大文字使ったりしないのん? 😕


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です