WordPressのpost id を変更する

久々にWordPressの話題です。

post idにより表示される順番が決まってしまう場合があります。そのため強制的にpost idを変更する必要がでてきました。ぐぐっても簡単に変更する方法がないので自分でやりました。基本的にはデータベースを変えるしかないようです。プログラムを組めばできそうですがそのようなプログラムはまだないかもしれません。

今回はAtahualpa Theme のcatagoryをmenuとして使った後遺症でpost idでしかソートできなくてpost idを変える必要がありました。本来なら順番にpageなどを作っていればpost idも順番どおりなので何もいじる必要はないのですがたまたま1つだけpost idが順番ではないため変える必要がでてきました。

    old                           new
publish  inherit    tytle    page    publish  inherit
508     509      f      page 15   265    266
265     266      j      page 8     267    268
267     268      ni     page 9     269    270
269     270     niku    page 9     271    272
271     272      s      page 9     273    274
273     274     syo     page 9    5000   5001   508  509

上記の数字はpost idでoldからnewへpost idを変えます。ちなみにpublishは内容でinheritはタイトルで、それぞれにpost idが割り振られています。post idはphp adminで編集することができます。注意点ですがpost idを変更する時、すでに存在するpost idには変更できません。そのためまず変更したいpost idの空きを作る必要があります。今回の場合、まずsyoのpost id 273と274をそれぞれ5000と5001に変更し、順次変更しました。最後に5000と5001を508と509にしています。

ちょっと面倒くさそうに思えますが10分もあれば十分できます。

カテゴリーなどにそのカテゴリー記事を表示させない

Joomlaは通常、セクション、カテゴリー、記事という階層になっている。そして例えば、デフォルトではカテゴリーを表示させるとそのカテゴリーに属する記事の項目が表示させる。しかしそれを表示させたくない場合もある。そんな時はどうすればあいいかだが今以下のような設定になっているとする。

セクション名 A    タイプはセクション Blog レイアウト
カテゴリー名 B    タイプはスタンダードカテゴリレイアウト

これらの中にパラメータがある。この中にあるパラメータは表示、非表示ができるようになっており、ここをいじることで記事が表示させるかどうかが決まる。

私はここをすべて非表示の設定にした。その方がshopなどを作る場合は都合がいいからだ。

joomlaではたくさんの設定項目があるがかえって多すぎて分かりにくいことが多い。ひとつひとついじりながらどう変化を確認し、その内容を把握することが大事だろう。