अपडेट 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;
}
Extraयह वह कोड है जिसका उपयोग मैंने एक पृष्ठ पर कई अतिरिक्त पृष्ठों का परीक्षण करने के लिए किया था
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 को अक्षम करने से मुझे अतिरिक्त पृष्ठ देखने की सुविधा मिलती है और इसमें एडिटोनल कंटेंट होता है, लेकिन फिर भी यह 40% की त्रुटि को ट्रिगर करता है।
मैंने कई वर्कअराउंड की कोशिश की है, जिनमें से कोई भी 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;
}
इस बिंदु पर मैं इस कार्यक्षमता को पुनर्स्थापित करने के बारे में विचारों से बाहर हूं और किसी भी सहायता की सराहना की जाएगी।