- 2008-06-05 (木) 12:53
- wordpress
「ページスラッグ編集するエリアが見当たらないんだけど・・・・」っていう質問は本家でもよく書かれてます。
Wordpress2.5~2.6はタイトルの下にページスラッグ編集エリアが出ますが、多くの場合表示されてません。
普通はどうやったら出るようになるのかというと、オプション設定の「パーマリンク設定」で、
パーマリンク構造内に %postname%か%pagename% を含む場合のみ表示されるようになります。
表示されるタイミングは、タイトル入力後かオートセーブか何かで下書きが保存された時点ですが、
パーマリンク構造に%postname%が含まれてなければスルーされる。
で、コレではあまりに不便。
このブログは%postname%使わないリンク構造してるけど、ページスラッグも変更しときたいなァ・・・とか思って
常に表示させる方法を我々スタッフが総力を挙げて探しました。
その結果・・・無事見つけ出すことが出来ましたよ!
●Wordpress2.7について
ver2.7ではクイック編集でパーマリンク設定に拠らず変更が可能です。
以下、wordpressコアファイルと感動のご対面。
※テキストエディタはBOMなしUTF-8で保存できるものがベターだと思いますん
wp-admin/includes/にあるpost.phpを開く。
642行目付近にget_sample_permalink_html()という関数があるんで、次のように・・・
-
function get_sample_permalink_html($id, $new_title=null, $new_slug=null) {
-
$post = &get_post($id);
-
-
//ここからコメントアウト
-
// if (false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%')) {
-
// return '';
-
// }
-
//ここまで
-
$title = __('Click to edit this part of the permalink');
-
} else {
-
$post_name_abridged = $post_name;
-
}
-
$post_name_html = '<span id="editable-post-name" title="'.$title.'">'.$post_name_abridged.'</span><span id="editable-post-name-full">'.$post_name.'</span>';
-
$return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink">' . $display_link . "</span>\n";
-
$return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug" onclick="edit_permalink(' . $id . '); return false;">' . __('Edit') . "</a></span>\n";
-
return $return;
-
}
645行目くらいにあるif文をコメントアウトする。
見てわかるとおり、ここでパーマリンク構造を判断して該当しない場合にfalse送ってます。
つまりここが無ければ常に表示されるようになるわけです。
でもこれだと、表示はされるけどパーマリンク設定で%postname%が入ってないと編集が出来ない。
(ってことに公開後に気づいたスタッフ一同。反省)
そこで先ほどの関数のすぐ上にあるget_sample_permalink()をちょっと変える。
621行前後にパーマリンクをゲットしてるところがあるので
-
$permalink = get_permalink($post, true);
これをコメントアウトして変わりに
-
//$permalink = get_permalink($post, true);
-
$permalink = get_option('home')."/%pagename%";
こんな感じにしますと、全部
-
パーマリンク: http://tenderfeel.xsrv.jp/エンコード済み記事タイトル
みたいな感じになって、タイトル部分が編集可能になる。
とりあえずこの変更をすれば、パーマリンク構造に%postname%が入って無くても、
タイトルを入れた時点でページスラッグ編集エリアが出ると思います。
記事を公開した場合使用されるURLは設定したページスラッグではなく、パーマリンク構造設定に基づくURLです。
でも上の方法はかなり色々省略したアバウトな紹介なので、ここまで書いておいてアレなんですが
具体的にアレコレしたいならコアファイル編集するよりも、直接スラッグが操作できるHeadSpace2みたいなプラグイン使ったほうが早いんじゃないかと思いました。
我々スタッフとか書きましたが一人です。hehehe
関連記事
- Newer: [XHTML]ValidなFlash表示ソース
- Older: [JS]Table内セルを自動的にストライプにする