2016-01-21 업데이트
내 현재 모든 테스트는 다음 설정으로 4.4.1을 새로 설치하여 수행됩니다.
Plain permalinks
Twentysixteen Theme
No plugins activated
게시물에 1 페이지 만있는 경우 (즉 <!--nextpage-->
, 게시물에 나타나지 않는 경우) 추가 페이지가 여러 개 추가 된 경우에도 추가 페이지가 성공적으로 추가됩니다 ¹.
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
게시물이 2+ 페이지 를 갖는 경우, 추가 페이지 ( 404) 및 표준 페이지는 게시물의 1 페이지로 리디렉션 된다.
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
<!--nextpage-->
This is page 2
두 번째 경우 $wp_query->queried_object
에는 추가 페이지를 치면 비어 있습니다. 이 정보를 보려면 표준 리디렉션을 비활성화해야합니다.remove_filter('template_redirect', 'redirect_canonical');
다음 코어 픽스 모두 동작을 변경하지 않고 개별적으로 함께 시도했습니다. https://core.trac.wordpress.org/ticket/35344#comment:16
https://core.trac.wordpress.org/ticket/35344#comment:34
사용하기 쉽도록 이것은 현재 테스트중인 코드입니다.
add_action('template_redirect', 'custom_content_one');
function custom_content_one() {
global $post;
$content = "\n<!--nextpage-->\nThis is the extra page v1";
$post->post_content .= $content;
}
add_filter('content_pagination', 'custom_content_two', 10, 2);
function custom_content_two($pages, $post) {
if ( in_the_loop() && 'post' === $post->post_type ) {
$content = "This is the extra page v2";
$pages[] = $content;
}
return $pages;
}
add_action('the_post', 'custom_content_three');
function custom_content_three() {
global $multipage, $numpages, $pages;
$content = "This is the extra page v3";
$multipage = 1;
$numpages++;
$pages[] = $content;
}
¹ 이것은 단일 페이지 게시물에서 여러 개의 추가 페이지를 테스트하는 데 사용한 코드입니다
add_action('template_redirect', 'custom_content_one');
function custom_content_one() {
global $post;
$content = "\n<!--nextpage-->\nThis is the extra page v1-1\n<!--nextpage-->\nThis is the extra page v1-2\n<!--nextpage-->\nThis is the extra page v1-3";
$post->post_content .= $content;
}
원래 질문
4.4 이전에는 다음과 같이 추가 페이지를 다중 페이지 게시물에 추가 할 수있었습니다.
add_action('template_redirect', 'custom_content');
function custom_content() {
global $post;
$content = html_entity_decode(stripslashes(get_option('custom_content')));
$post->post_content .= $content;
}
get_option ( 'custom_content')은 다음과 같습니다.
<!--nextpage-->
Hello World
4.4로 업그레이드 한 이후에는 코드가 작동하지 않았습니다. 추가 페이지로 이동하면 404 오류가 발생하고 redirect_canonical 은 해당 오류를 게시물의 영구 링크로 다시 보냅니다. redirect_canonical을 비활성화하면 추가 페이지를 볼 수 있으며 추가 콘텐츠가 있지만 여전히 404 오류가 발생합니다.
여러 가지 해결 방법을 시도했지만 404 오류를 해결하는 방법은 없습니다.
add_action('the_post', 'custom_content');
function custom_content() {
global $multipage, $numpages, $pages;
$content = html_entity_decode(stripslashes(get_option('custom_content')));
$multipage = 1; // ensure post is considered multipage: needed for single page posts
$numpages++; // increment number of pages
$pages[] = $content;
}
4.4에 추가 된 새로운 content_pagination 필터를 활용 해 보았습니다 .
add_filter('content_pagination', 'custom_content', 10, 2);
function custom_content($pages, $post) {
$content = html_entity_decode(stripslashes(get_option('custom_content')));
$pages[] = $content;
return $pages;
}
이 시점에서이 기능을 복원하는 방법에 대한 아이디어가 없으며 도움을 주시면 감사하겠습니다.