Güncelleme 2016-01-21
Sonumdaki tüm güncel testler, 4.4.1'in yeni kurulumlarında aşağıdaki ayarlarla yapılıyor:
Plain permalinks
Twentysixteen Theme
No plugins activated
Yayında yalnızca 1 sayfa varsa (yani yayında görünmüyorsa) <!--nextpage-->
, fazladan sayfalar başarılı bir şekilde eklenir (birden fazla fazladan sayfa ekleseniz bile).
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
Gönderinin 2'den fazla sayfası varsa, fazladan sayfalar 404 ve standart olarak gönderinin 1. sayfasına yönlendirilir .
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
<!--nextpage-->
This is page 2
$wp_query->queried_object
Ekstra sayfalara bastığınızda ikinci durumda boş olur. Bunu görmek için kurallı yönlendirmeyi devre dışı bırakmanız gerekirremove_filter('template_redirect', 'redirect_canonical');
Aşağıdaki çekirdek düzeltmelerin her ikisi de davranış değişikliği olmadan ayrı ayrı ve birlikte denenmiştir: https://core.trac.wordpress.org/ticket/35344#comment:16
https://core.trac.wordpress.org/ticket/35344#comment:34
Kullanım kolaylığı için bu şu anda test ettiğim kod:
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;
}
İsBu tek sayfalık bir yazıda birden fazla fazla sayfayı test etmek için kullandığım kod
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;
}
Orijinal Soru
4.4'ten önce aşağıdakilerle birlikte bir çok sayfalı yazıya ek bir sayfa ekleyebildim:
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') gibi bir şeyle:
<!--nextpage-->
Hello World
4.4 sürümüne yükseltme yapıldığından kod çalışmadı; ek sayfaya gitmek bir 404 hatası tetikler ve redirect_canonical bunları gönderinin kalıcı bağlantısına geri gönderir. Redirect_canonical özelliğini devre dışı bırakmak ekstra sayfayı görüntülememe izin veriyor ve ek içerik orada, ancak yine de bir 404 hatası tetikliyor.
Aşağıdakiler dahil 404 hatasını çözen bir dizi geçici çözümü denedim:
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;
}
Ayrıca 4.4'te eklenen yeni content_pagination filtresini kullanmayı denedi :
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;
}
Bu noktada, bu işlevselliği nasıl geri yükleyeceğime dair fikirlerim bitti ve herhangi bir yardım takdir edilecektir.