12月
21
2012

WordPress 記事のURLを自動で連番にする

wordpress

前回簡単にパーマリンクの設定のやり方を紹介しましたが今回はパーマリンクを連番で付けていくやり方を紹介していこうと思います。
ちなみにwordpressのバージョンは3.4.2になります~
バージョンが違う場合はうまくいかない場合や、変更するファイル、行が変わると思うので注意してくださいね~

今回のパーマリンクに設定していこうと思うURLは~
「ドメイン」+「年」+「月」+「連番」.html
です。

この記事で言うと
http://nyanto.net/2012/12/5.html
こんな感じに表示されます~

なんでこんなURLなの?それは私的にわかりやすいからですw
大体どの時期に書いたか簡単にわかりますしねw

1.まずはパーマリンク設定

とりあえずわかりやすい所からやっていきましょうか~

前回で紹介したダッシュボード内のパーマリンク設定を変更します。

パーマリンク設定

共通設定のカスタム構造を選んで

/%year%/%monthnum%/%postname%.html

これを入力します。
「%year%」は年
「%monthnum%」は月
「%postname%」は連番を表示します。

ここを変えると自分の好きな組み合わせでURLを変更できますよ

2.次はPHPを変更だ!

パーマリンクの設定が終わりましたがこれだけではうまく連番表示になりません。
1で設定した「%postname%」なんですが、これは記事の投稿スラッグを利用しています
投稿スラッグとは各記事に固有のURLを与えることができるようにするものです
投稿スラッグは記事編集画面で見ることができます。
初期設定ではスラッグは表示されていないので、表示オプションでスラッグを表示させましょう
表示のさせ方は、
記事画面を開いて画面上部にある「表示オプション」をクリックします。
するとオプションが表示されますので、そこの「スラッグ」にチェックを入れます。

スラッグ表示

「スラッグ」にチェックを入れると記事画面にスラッグという項目が表示されるようになります。
ここの値が、「%postname%」に入ってくるという仕組みです~
これを利用して記事のURLを連番表示にしています。

さてこれだけでは毎回自分でスラッグを設定しないとダメなので、自動でスラッグが連番に設定されるようにPHPを修正していきます。

変更するPHPファイルは
/wq-admin/includes/meta-boxes.php
です。(WordPressのバージョンが3.4.2の場合)

このファイルの500行目に

/**
 * Display slug form fields.
 *
 * @since 2.6.0
 *
 * @param object $post
 */
function post_slug_meta_box($post) {
?>
<label class="screen-reader-text" for="post_name"><?php _e('Slug') ?></label><input name="post_name" type="text" size="13" id="post_name" value="<?php echo esc_attr( apply_filters('editable_slug', $post->post_name) ); ?>" />
<?php
}

とあるのでこれを

/**
 * Display slug form fields.
 *
 * @since 2.6.0
 *
 * @param object $post
 */
function post_slug_meta_box($post) {
?>
<label class="screen-reader-text" for="post_name"><?php _e('Slug') ?></label>
<input name="post_name" type="text" size="13" id="post_name" value="<?php
if(get_post_status() == 'publish'){
	echo esc_attr( apply_filters('editable_slug', $post->post_name) );
} else {
	echo count_user_posts(1) + 1;}
?>" />
<?php
}

に、上書きでコピーします。

これは何をしてるかというと、現在記事数+1をスラッグにいれるという処理を行ってます。
そのため、新しい記事を作成する際に今の記事数+1が新しい記事のスラッグに入り連番になります。
あと、古い記事を更新するときは条件分岐でurlが変わらないようになっています。

条件分岐を入れておかないと、古い記事を更新する際にURLが変わっちゃいますので。。。

これで無事記事を自動で連番にすることができます~

ちなみにバージョン3.5.1の場合は、500行目ではなく、565行目あたりになります~
3.5.1で500行目の所を間違って差し替えてしまうと管理画面が真っ白になりますよ。。。
(私やっちゃいましたのでw)

PHP修正時の注意事項

PHPを弄るときは絶対にバックアップを取っておきましょう
間違えて他の所を編集してしまうと管理画面が真っ白になってしまうことがあります~
バックアップを取りつつ作業をしていくことをオススメします。

関連記事

wordpress
WordPress なぜか記事がインデックスされない?
検索エンジン(Google)にインデックスされない・・・ ...
wordpress
Word Press パーマリンクってなんでしょう?
パーマリンクってなに? パーマリンクってなんだ?と思ってる...
リネームツール「Namery」
ファイル名を簡単整理 リネームツール「Namery」で連番に変換
デジカメで撮った写真や、画像、テキストファイルなどなどパソ...
432
【iTunes11】【iPhone】 着信音の入れ方
iPhoneに初期から入っている着信音では満足できない人は...
れあ

About the Author: れあ

ラノベ・ゲーム・アニメ大好きな人です♪ 最近やってるゲームはFF14です~ サーバーはMandragora(マンドラゴラ)で活動中♪