Atualização 2016-01-21
Todos os testes atuais do meu lado estão sendo feitos em novas instalações da 4.4.1 com as seguintes configurações:
Plain permalinks
Twentysixteen Theme
No plugins activated
Se a postagem tiver apenas 1 página (ou seja <!--nextpage-->
, não aparecer na postagem), as páginas extras serão anexadas com êxito (mesmo se você anexar várias páginas extras¹).
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
Se a postagem tiver mais de 2 páginas , as páginas extras 404 e o redirecionamento canônico para a página 1 da postagem.
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
<!--nextpage-->
This is page 2
No segundo caso, $wp_query->queried_object
está vazio quando você acessa as páginas extras. Você precisará desativar o redirecionamento canônico para ver issoremove_filter('template_redirect', 'redirect_canonical');
As duas correções principais a seguir foram tentadas, separadamente e em conjunto, sem alterações no comportamento: https://core.trac.wordpress.org/ticket/35344#comment:16
https://core.trac.wordpress.org/ticket/35344#comment:34
Para facilitar o uso, este é o código com o qual estou testando atualmente:
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;
}
¹Este é o código que usei para testar várias páginas extras em uma única página
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;
}
Pergunta original
Antes da 4.4, eu era capaz de anexar uma página adicional a uma postagem de mutlipage com o seguinte:
add_action('template_redirect', 'custom_content');
function custom_content() {
global $post;
$content = html_entity_decode(stripslashes(get_option('custom_content')));
$post->post_content .= $content;
}
Com get_option ('custom_content') sendo algo como:
<!--nextpage-->
Hello World
Desde a atualização para 4.4, o código não funcionou; navegar para a página adicional aciona um erro 404 e redirect_canonical os envia de volta ao link permanente da postagem. Desativar redirect_canonical permite visualizar a página extra e o conteúdo adicional está lá, mas ainda aciona um erro 404.
Eu tentei várias soluções alternativas, nenhuma das quais resolve o erro 404, incluindo:
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;
}
Também tentei aproveitar o novo filtro content_pagination que foi adicionado no 4.4:
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;
}
Neste ponto, estou sem idéias sobre como restaurar essa funcionalidade e qualquer assistência seria apreciada.