「ページスラッグ編集するエリアが見当たらないんだけど・・・・」っていう質問は本家でもよく書かれてます。
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); list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug); //ここからコメントアウト // if (false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%')) { // return ''; // } //ここまで $title = __('Click to edit this part of the permalink'); if (strlen($post_name) > 30) { $post_name_abridged = substr($post_name, 0, 14). '…' . substr($post_name, -14); } 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>'; $display_link = str_replace(array('%pagename%','%postname%'), $post_name_html, $permalink); $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%";
こんな感じにしますと、全部
パーマリンク: https://tenderfeel.xsrv.jp/エンコード済み記事タイトル
みたいな感じになって、タイトル部分が編集可能になる。
とりあえずこの変更をすれば、パーマリンク構造に%postname%が入って無くても、
タイトルを入れた時点でページスラッグ編集エリアが出ると思います。
記事を公開した場合使用されるURLは設定したページスラッグではなく、パーマリンク構造設定に基づくURLです。
でも上の方法はかなり色々省略したアバウトな紹介なので、ここまで書いておいてアレなんですが
具体的にアレコレしたいならコアファイル編集するよりも、直接スラッグが操作できるHeadSpace2みたいなプラグイン使ったほうが早いんじゃないかと思いました。
我々スタッフとか書きましたが一人です。hehehe
「[WP]WordPress2.5~2.6のパーマリンク編集エリアを常に表示させる」への1件のフィードバック