LoginSignup
0
0

More than 5 years have passed since last update.

WordPress予約投稿のプレビュー時、wp_link_pagesで出力されるURLにページ番号が含まれない不具合の応急処置

Last updated at Posted at 2017-09-14

2017/9/14現在最新のWordPress v4.8.1までの複数バージョンで症状が発生します。

症状

症状については以下フォーラムの投稿と同じものです。
https://ja.wordpress.org/support/topic/%E4%B8%8B%E6%9B%B8%E3%81%8D%E3%81%A7%E3%81%AE%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC/

<!-- nextpage -->を含めた本文を予約投稿でプレビューした際に、
ページ送りリンクのURLは、本来
http://example.com/?p=1334&page=2&preview=true
のようになるべきところ、
http://example.com/?p=1334%2F2%2F&preview=true
と出力される 場合が あります。
これにより、投稿の2ページ目以降をプレビューすることができません。

※場合があるというのは、予約投稿を設定して編集を開始した直後は正しく&page=2が出力されていても、
一度保存状態となるなど、何らかの条件によって%2F2%2Fが出力されます。
また、非公開+予約投稿の場合も正しく出力されるため、運用で回避することもできます。

応急処置

URLの形状を強引に変更します。

functions.php
/**
 * @param type $preview_link
 * @return type
 */
function custom_preview_post_link($preview_link){
    return preg_replace('/([0-9]+)%2F([0-9]+)%2F&/', '$1&page=$2&', $preview_link);
}
add_filter('preview_post_link', 'custom_preview_post_link');
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0