オプション»一般設定でWordPressのURLとホームのURL(settingsでいうとsiteurlとhome)を別々にしていると、管理画面のnext/prevが本来siteurlを指すべきところ、homeを指しているという問題が顕在化します。(WordPress ME2.0.5で確認)
修正パッチを書きました。
--- /wp-admin/edit.original.php Mon Nov 27 23:34:04 2006 +++ /wp-admin/edit.php Mon Nov 27 23:48:39 2006 @@ -232,14 +232,44 @@ </tr> <?php } // end if ($posts) +/* admin previous/next fix 20061127 uglydog, http://nanabit.net/ */ +if (!function_exists('admin_rewrite_link')) { + function admin_rewrite_link($link_str) { + $home_root = parse_url(get_settings('home')); + $home_root = $home_root['path']; + $home_root = trailingslashit($home_root); + $siteurl_root = parse_url(get_settings('siteurl')); + $siteurl_root = $home_root['path']; + $siteurl_root = trailingslashit($siteurl_root); + return str_replace($home_root, $siteurl_root, $link_str); + } +} +if (!function_exists('admin_next_posts_link')) { + function admin_next_posts_link($label='Next Page »', $max_page=0) { + ob_start(); + next_posts_link($label, $max_page); + $link_str = ob_get_contents(); + ob_end_clean(); + print admin_rewrite_link($link_str); + } +} +if (!function_exists('admin_previous_posts_link')) { + function admin_previous_posts_link($label='« Previous Page') { + ob_start(); + previous_posts_link($label); + $link_str = ob_get_contents(); + ob_end_clean(); + print admin_rewrite_link($link_str); + } +} ?> </table> <div id="ajax-response"></div> <div class="navigation"> -<div class="alignleft"><?php next_posts_link(__('« Previous Entries')) ?></div> -<div class="alignright"><?php previous_posts_link(__('Next Entries »')) ?></div> +<div class="alignleft"><?php admin_next_posts_link(__('« Previous Entries')) ?></div> +<div class="alignright"><?php admin_previous_posts_link(__('Next Entries »')) ?></div> </div> <?php

No Comments yet »
コメント RSS TrackBack URI
コメントをどうぞ