Home > wordpress > [WP]Wordpress2.5~2.6のパーマリンク編集エリアを常に表示させる

[WP]Wordpress2.5~2.6のパーマリンク編集エリアを常に表示させる

「ページスラッグ編集するエリアが見当たらないんだけど・・・・」っていう質問は本家でもよく書かれてます。
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()という関数があるんで、次のように・・・

PHP:
  1. function get_sample_permalink_html($id, $new_title=null, $new_slug=null) {
  2.     $post = &get_post($id);
  3.     list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug);
  4.  
  5. //ここからコメントアウト
  6. //  if (false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%')) {
  7. //    return '';
  8. //  }
  9. //ここまで
  10.     $title = __('Click to edit this part of the permalink');
  11.     if (strlen($post_name)> 30) {
  12.         $post_name_abridged = substr($post_name, 0, 14). '…' . substr($post_name, -14);
  13.     } else {
  14.         $post_name_abridged = $post_name;
  15.     }
  16.     $post_name_html = '<span id="editable-post-name" title="'.$title.'">'.$post_name_abridged.'</span><span id="editable-post-name-full">'.$post_name.'</span>';
  17.     $display_link = str_replace(array('%pagename%','%postname%'), $post_name_html, $permalink);
  18.     $return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink">' . $display_link . "</span>\n";
  19.     $return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug" onclick="edit_permalink(' . $id . '); return false;">' . __('Edit') . "</a></span>\n";
  20.     return $return;
  21. }

645行目くらいにあるif文をコメントアウトする。
見てわかるとおり、ここでパーマリンク構造を判断して該当しない場合にfalse送ってます。
つまりここが無ければ常に表示されるようになるわけです。

でもこれだと、表示はされるけどパーマリンク設定で%postname%が入ってないと編集が出来ない。
(ってことに公開後に気づいたスタッフ一同。反省)

そこで先ほどの関数のすぐ上にあるget_sample_permalink()をちょっと変える。
621行前後にパーマリンクをゲットしてるところがあるので

PHP:
  1. $permalink = get_permalink($post, true);

これをコメントアウトして変わりに

PHP:
  1. //$permalink = get_permalink($post, true);
  2. $permalink = get_option('home')."/%pagename%";

こんな感じにしますと、全部

HTML:
  1. パーマリンク: http://tenderfeel.xsrv.jp/エンコード済み記事タイトル

みたいな感じになって、タイトル部分が編集可能になる。

とりあえずこの変更をすれば、パーマリンク構造に%postname%が入って無くても、
タイトルを入れた時点でページスラッグ編集エリアが出ると思います。
記事を公開した場合使用されるURLは設定したページスラッグではなく、パーマリンク構造設定に基づくURLです。

でも上の方法はかなり色々省略したアバウトな紹介なので、ここまで書いておいてアレなんですが
具体的にアレコレしたいならコアファイル編集するよりも、直接スラッグが操作できるHeadSpace2みたいなプラグイン使ったほうが早いんじゃないかと思いました。

我々スタッフとか書きましたが一人です。hehehe

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://tenderfeel.xsrv.jp/wordpress/220/trackback/
Listed below are links to weblogs that reference
[WP]Wordpress2.5~2.6のパーマリンク編集エリアを常に表示させる from WebTecNote
pingback from ちらうら☆蚤の市 » パーマリンクが変 08-07-20 (日) 9:54

[...] [WP]Wordpress2.5のパーマリンク編集エリアを常に表示させる [...]

Home > wordpress > [WP]Wordpress2.5~2.6のパーマリンク編集エリアを常に表示させる

最近の投稿
最近の修正
  • そしてこのSQLはわれながらよく書いたと思う 2010-11-15
  • CSVの列っていう方がいいのかな…118項目だった 2010-11-15
  • 楽天のCSVの項目が116個もあった衝撃 2010-11-15
  • オフィスで香水臭振りまくのは迷惑だと知れ 2010-11-15
  • ぐあー フレグランステロやー 2010-11-15
  • More updates...

Powered by Twitter Tools

Tag Cloud
おすすめサーバー・他
メタ情報

Return to page top