WordpressMUでは通常のWordpressと違い、なぜかカテゴリースラッグが設定できません。
日本語カテゴリーだと、カテゴリーリンクが記号交じりの変なURLになってしまいます。。。
そこで、ハックを試み成功しましたのでメモしておきます!
同じ悩みがある方のお役に立てば幸いです。
1. wp-admin/edit_category_form.php に次の行を記載
記載箇所は、
<tr class=”form-field form-required”>
・・・・
</tr>
の次あたりでいいと思います。
↓記載内容はここから
<th scope=”row” valign=”top”><label for=”category_nicename”><?php _e(’Category slug:’) ?></label></th>
<td><input name=”category_nicename” id=”category_nicename” type=”text” value=”<?php echo attribute_escape($category->category_nicename); ?>” size=”40″ /></td>
</tr>
↑ここまで
2. wp-includes/taxonomy.php の function wp_update_term を修正
wp_update_term は1608行目あたりにあります。(バージョンによって違うかもしれません)
2-1. global $wpdb; の次の行に
$slugtmp = $args['slug'];
を追加
2-2. $args = apply_filters( ‘pre_update_term’, $term, $taxonomy, $args ); の次に
if($slugtmp) $args['slug'] = $slugtmp;
を追加
以上で、カテゴリースラッグを自由に設定できます。
今のところ問題なく使えていますが、不具合等あったらコメント等で知らせてください。
9 月 7th, 2008 at 11:40 PM
wpmu 2.6.1でやってみましたが、これをやると全てがブランクページになってしまいます。
またこのバージョンですとtaxonomyだと1467行辺りにwp_update_termがありました。
フォーラムにもなんでこの機能が消えているのか?という質問(要望)もありますね。カテゴリースラッグが変更できないのは日本語ユーザーには更に厳しいですね。
9 月 9th, 2008 at 11:00 PM
そうですか!ご不便おかけしました!
変数の値をチェースしていると
$args = apply_filters
のところで、カテゴリースラッグが、カテゴリー名で上書きされてしまうので、
事前にカテゴリースラッグ名をtmpに取得しておいて、apply_filtersのあとで元に戻してやるというのが上記の方法です。
MU自体にスラッグ機能が速く実装されるといいのですが。
10 月 16th, 2008 at 9:59 PM
[...] Wordpress MU カテゴリースラッグを自由に設定する (PHPpress) [...]