Update 21.01.2016
Alle aktuellen Tests auf meiner Seite werden bei Neuinstallationen von 4.4.1 mit den folgenden Einstellungen durchgeführt:
Plain permalinks
Twentysixteen Theme
No plugins activated
Wenn der Beitrag nur 1 Seite hat (dh <!--nextpage-->
nicht im Beitrag erscheint), werden die zusätzlichen Seiten erfolgreich angehängt (auch wenn Sie mehrere zusätzliche Seiten anhängen¹).
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
Wenn der Beitrag mehr als 2 Seiten umfasst, werden die zusätzlichen Seiten 404 und die kanonische Weiterleitung auf Seite 1 des Beitrags weitergeleitet.
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
<!--nextpage-->
This is page 2
Im zweiten Fall $wp_query->queried_object
ist leer, sobald Sie die zusätzlichen Seiten getroffen haben. Sie müssen die kanonische Umleitung deaktivieren, um dies zu sehenremove_filter('template_redirect', 'redirect_canonical');
Die beiden folgenden Hauptkorrekturen wurden separat und zusammen ohne Änderung des Verhaltens ausprobiert: https://core.trac.wordpress.org/ticket/35344#comment:16
https://core.trac.wordpress.org/ticket/35344#comment:34
Der Einfachheit halber ist dies der Code, mit dem ich gerade teste:
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;
}
¹Dies ist der Code, mit dem ich mehrere zusätzliche Seiten auf einem einzelnen Seitenbeitrag getestet habe
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;
}
Ursprüngliche Frage
Vor 4.4 konnte ich eine zusätzliche Seite mit folgendem Inhalt an einen Mehrseiten-Post anhängen:
add_action('template_redirect', 'custom_content');
function custom_content() {
global $post;
$content = html_entity_decode(stripslashes(get_option('custom_content')));
$post->post_content .= $content;
}
Mit get_option ('custom_content') ist so etwas wie:
<!--nextpage-->
Hello World
Seit dem Upgrade auf 4.4 hat der Code nicht funktioniert. Das Navigieren zu der zusätzlichen Seite löst einen 404-Fehler aus und redirect_canonical sendet sie zurück an den Permalink des Posts. Durch Deaktivieren von redirect_canonical kann ich die zusätzliche Seite anzeigen und der zusätzliche Inhalt ist vorhanden, es wird jedoch weiterhin ein 404-Fehler ausgelöst.
Ich habe eine Reihe von Problemumgehungen versucht, von denen keine den 404-Fehler behebt, einschließlich:
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;
}
Es wurde auch versucht, den neuen content_pagination- Filter zu nutzen, der in 4.4 hinzugefügt wurde:
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;
}
An diesem Punkt habe ich keine Ideen, wie diese Funktionalität wiederhergestellt werden kann, und ich würde mich über jede Unterstützung freuen.