<! - পরের পৃষ্ঠা -> সহ 4.4 এ ভাঙা সামগ্রী যুক্ত করা হচ্ছে


14

আপডেট 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# মন্তব্য

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;
}

মূল প্রশ্ন

৪.৪ এর পূর্বে আমি নিম্নলিখিতটি দিয়ে একটি মাল্টিপেজ পোস্টে একটি অতিরিক্ত পৃষ্ঠা যুক্ত করতে পেরেছি:

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 ('কাস্টম_ কনটেন্ট') এর সাথে এমন কিছু রয়েছে:

<!--nextpage-->
Hello World

৪.৪-তে আপগ্রেড করার পরেও কোডটি কার্যকর হয়নি; অতিরিক্ত পৃষ্ঠায় নেভিগেট করা 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;
}

৪.৪-তে যুক্ত হওয়া নতুন কন্টেন্ট_সামগ্রী ফিল্টারটিও কাজে লাগানোর চেষ্টা করেছে:

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;
}

এই মুহুর্তে আমি কীভাবে এই কার্যকারিতাটি পুনরুদ্ধার করতে পারি এবং কোনও সহায়তার প্রশংসা করা যায় সে সম্পর্কে আমি ধারণার বাইরে।


ঠিক আছে তাই আমার এ সম্পর্কে একটি আপডেট আছে, দুর্ভাগ্যক্রমে এটি ইতিবাচক নয়। অতিরিক্ত পৃষ্ঠা পৃষ্ঠা 2 হলে দৃশ্যত এটি তাজা ইনস্টলের উপর কাজ করে However / কব্জি
মেলাম্বার

1
বাগ ফাউন্ড !!!!! হাঁ !!!!। আমার উত্তরটি শীঘ্রই আপডেট করবে
পিটার গুসেন

উত্তর:


8

আপডেট 21-01-2016 19:35 এস এ টাইম - বাগ ফাউন্ড !!!!! হাঁ !!!!!!

অবশেষে বাগটি পেলাম। আপনি আপনার শেষ আপডেটে যেমন বলেছিলেন, ব্যর্থতা তখনই ঘটে যখন বিষয়বস্তুতে $post_contentএকটি <!--nextpage-->ট্যাগ থাকবে। আমি এটি পরীক্ষা করেছি এবং নিশ্চিত করেছি যে পৃষ্ঠার পরে অন্য কোনও পৃষ্ঠা <!--nextpage-->404 ফেরত দেবে এবং তারপরে পৃষ্ঠাটি প্রথম পৃষ্ঠায় ফিরে যাবে।

এটি ওয়ার্ডপ্রেস ৪.৪- এ ক্লাসে চালু হওয়া পদ্ধতিতে কোডের নীচের লাইনগুলির কারণেhandle_404()WP

// check for paged content that exceeds the max number of pages
$next = '<!--nextpage-->';
if ( $p && false !== strpos( $p->post_content, $next ) && ! empty( $this->query_vars['page'] ) ) {
    $page = trim( $this->query_vars['page'], '/' );
    $success = (int) $page <= ( substr_count( $p->post_content, $next ) + 1 );
}

এই কোডটি যা করে তা হ'ল যখনই <!--nextpage-->ট্যাগটি সেট করা থাকে post_content, তখন কোনও পৃষ্ঠা অ্যাক্সেস করা হলে এটি 404 ফেরত আসবে যা content_paginationফিল্টারের মাধ্যমে সামগ্রীর পরে যুক্ত হয় । 404 সেট হওয়ার কারণে, যে redirect_canonical()কোনও সংযুক্ত পৃষ্ঠাটি প্রথম পৃষ্ঠায় পুনঃনির্দেশ করে

আমি এই সমস্যাটি সম্পর্কে একটি ট্র্যাকের টিকিট দায়ের করেছি যা আপনি এখানে পরীক্ষা করে দেখতে পারেন

লেখার সময় কোনও প্রতিক্রিয়া এখনও পাওয়া যায় নি, তাই নিয়মিত টিকিটের স্থিতি পরীক্ষা করে দেখতে ভুলবেন না

বর্তমান সমাধান - এ / ডাব্লু ট্র্যাকের টিকিট ফিডব্যাক

আপাতত, যতক্ষণ না আমরা ভবিষ্যতে প্রকাশে কোনও প্রতিক্রিয়া এবং সম্ভাব্য সংশোধন না পাই, WPপরবর্তী বিজ্ঞপ্তি না হওয়া পর্যন্ত ক্লাস থেকে কেবল সেই লাইনগুলি মুছুন

এটা কি সময় ...... এটি সময় নিরপেক্ষ !!!!!

আমি এটি পুরোপুরি পরীক্ষা করার সময় ছিল। আমি আপনার কোড নিয়েছি এবং এটিতে পরীক্ষা করেছি:

  • আমার v4.3 স্থানীয় ইনস্টল

  • আমার v4.4.0 স্থানীয় ইনস্টল

  • আমার v4.4.1 স্থানীয় ইনস্টল

  • কেবলমাত্র Hello Worldপোস্ট এবং Sample Pageপৃষ্ঠা সহ নতুন নতুন v4.4.1 স্থানীয় ইনস্টল করুন

আমার পারমালিঙ্কস সেট করা আছে

  • default এবং

  • Post Name

এখানে আমার পরীক্ষার পোস্টের ভিতরে 4 টি পৃষ্ঠা তৈরির জন্য আমার পরীক্ষার কোড।

add_filter('content_pagination', 'custom_content', 10, 2);
function custom_content($pages, $post) {
    $pages_to_add = [
        'Hello World Page 2',
        'Hello World Page 3',
        'Hello World Page 4',
    ];

    foreach ( $pages_to_add as $page_to_add ){
        $pages[]  = html_entity_decode(
            stripslashes(
                $page_to_add
            )
        );
    }

    return $pages;
}

আমিও পরীক্ষা করেছিলাম

add_filter('content_pagination', 'custom_content', 10, 2);
function custom_content($pages, $post) {
    $pages_to_add = [
        '<!--nextpage--> Hello World Page 2',
        '<!--nextpage--> Hello World Page 3',
        '<!--nextpage--> Hello World Page 4',
    ];

    foreach ( $pages_to_add as $page_to_add ){
        $pages[]  = html_entity_decode(
            stripslashes(
                $page_to_add
            )
        );
    }

    return $pages;
}

ভাল পদক্ষেপের জন্য

প্রতিটি ইনস্টল এবং পারমিলিং স্ট্রাকচারে আপনার সমস্ত কোড কাজ করে ( v4.3 এ ছাড়া content_paginationযা প্রত্যাশিত )।

আমি Sample Pageএকটি স্ট্যাটিক প্রথম পৃষ্ঠা হিসাবেও সেট করেছিলাম , তবে এটি আমার অরিজিনাল উত্তর এবং ** সম্পাদনাতে বর্ণিত ত্রুটি হিসাবে কনফর্মেশন হিসাবে পৃষ্ঠা 2 এ ব্যর্থ হয়েছে

সুতরাং উপসংহারটি এই যে এটির বাগের সাথে কোর বা অন্য কোনও বাগের সাথে কোনও সম্পর্ক নেই। মন্তব্যগুলি থেকে, কিছু পেজড পোস্ট পৃষ্ঠাগুলিতে কোয়েরি করা অবজেক্টটি আনসেট করে দিচ্ছে এবং এটি আমাদের ডিবাগ করার দরকার। দুর্ভাগ্যক্রমে এই সমস্যাটি এখন স্থানীয়করণ হওয়ায়, আমি সঠিক সমাধান দিতে পারি না।

সমস্যাটি ডিগ্রি করা হচ্ছে

ইস্যুটি ডিবাগ করার জন্য আপনার নীচের কাজের প্রবাহটি ব্যবহার করতে হবে

  • নিজেকে প্রচুর পরিমাণে চিনিযুক্ত উচ্চ পরিমাণে ক্যাফিন কফি পান

  • আপনার একটি ব্যাকআপ নিন ডিবি

  • নিম্নলিখিত প্লাগইনগুলি ডাউনলোড এবং ইনস্টল করুন ( কোনও প্লাগইনের সাথে আমার কোনও সম্পর্ক নেই )

    • সাধারণ ডিবাগিংয়ের জন্য ডিবাগ অবজেক্টস । একবার ইনস্টল এবং সেটআপ হয়ে গেলে, প্লাগইন দ্বারা হাইলাইট করা সমস্ত স্পষ্ট বাগগুলি মেরামত করুন। আপনার যদি সুস্পষ্ট বাগ থাকে তবে পরবর্তী প্রধান বুলেট পয়েন্ট অবিরত করবেন না। প্রথমে সেগুলি ঠিক করুন

    • আপনি পরবর্তী বুলেট পয়েন্টে চালিয়ে যাওয়ার আগে আপনি আপনার ডিবি মেরামত ও পরিষ্কার করার জন্য ডিবি পরিচালক ব্যবহার করবেন

  • সমস্ত ক্যাশে, ব্রাউজার এবং প্লাগইন সাফ করুন

  • সমস্ত প্লাগইন নিষ্ক্রিয় করুন এবং ভাল পরিমাপের জন্য সমস্ত ক্যাশে আবার সাফ করুন। যেহেতু এই সমস্যাটি পুনঃনির্দেশের সমস্যার মতো দেখাচ্ছে, আমি সম্ভবত প্রথমে সমস্ত প্লাগইন নিষ্ক্রিয় করব যার পুনঃনির্দেশের সাথে কিছু করার থাকতে পারে। এটি হতে পারে যে একটি প্লাগইন এখনও v4.4 এর সাথে সামঞ্জস্যপূর্ণ নয়। সমস্যাটি যদি অব্যাহত থাকে কি না তা পরীক্ষা করে দেখুন, এটি যদি পরবর্তী বুলেট পয়েন্টে অবিরত থাকে, অন্যথায়, আরও বিশদে এটি দেখতে দিন

    সমস্ত প্লাগইন নিষ্ক্রিয় করে শুরু করুন, আপনি কেবল সমস্যা সমাধানের জন্য সুস্পষ্ট হতে পারে এমন প্লাগইনগুলি নিষ্ক্রিয় করে শুরু করতে পারেন। প্রতিটি এবং প্রতিটি প্লাগইন সক্রিয় হওয়ার পরে আপনার ইনস্টলটি সঠিকভাবে পরীক্ষা করুন। প্রথম প্লাগইনটি সক্রিয় হয়েছে যা সমস্যার কারণে দোষী হবে। সেক্ষেত্রে ডিবাগিংয়ের বিশদ সহ প্লাগইন লেখকের সাথে যোগাযোগ করুন। কেবলমাত্র ভাল পরিমাপের জন্য প্রতিটি প্লাগইন অ্যাক্টিভেশন পরে আপনার ক্যাশেগুলি সাফ করার বিষয়টি নিশ্চিত করুন

  • আপনি যদি এই স্থানে পৌঁছে থাকেন তবে পূর্বের বুলেট পয়েন্টটি আপনার সমস্যার সমাধান করেনি। পরবর্তী পদক্ষেপটি আপনার থিমটিকে ইস্যু হিসাবে মুছে ফেলার জন্য একটি বান্ডিল থিমে স্যুইচ করা উচিত। ঠিক আবার, পরিষ্কার ক্যাশে।

  • যদি সবকিছু ব্যর্থ হয় তবে আপনার কাছে আরও দুটি বিকল্প রয়েছে

    • মুছে ফেলুন .htaccessএবং ওয়ার্ডপ্রেস একটি নতুন তৈরি করতে দিন

    • ওয়ার্ডপ্রেস পুনরায় ইনস্টল করুন

এটি আপনার সমস্যা সমাধান করা উচিত। যদি এটি না হয়, আপনার ওয়ার্ডপ্রেস কোরতে একটি বাগ বিবেচনা করা উচিত যা সমস্যার কারণ হতে পারে।

আমি আশা করি এটি বাগটি ধরতে সহায়তা করে

হালনাগাদ

আমার আসলে ফাইওলিং ট্র্যাকের টিকিটের সাথে লিঙ্ক করা উচিত ছিল যা দেখে মনে হয় এটি আরও বিস্তারিতভাবে ব্যাখ্যা করেছে

উপরের ট্র্যাকের টিকিট থেকে আকর্ষণীয় এবং বেশ প্রাসঙ্গিক প্যাচগুলি

আমি এই মুহুর্তে দৃ concrete়ভাবে কিছু পরীক্ষা করতে পারি না, তবে আপনার প্রস্তাবিত প্যাচগুলির মাধ্যমে কাজ করা উচিত এবং সেগুলি পরীক্ষা করা উচিত। আমি যেটি তুলতে পারি তা হ'ল একই কোড redirect_canonical()যা স্থির সম্মুখ পৃষ্ঠাগুলির পৃষ্ঠাগুলির জন্য দায়ী সেগুলি একক পৃষ্ঠাগুলিতে পৃষ্ঠাগুলির জন্যও দায়ী।

মূল উত্তর

একক পৃষ্ঠাগুলি ( স্ট্যাটিক সম্মুখ পৃষ্ঠাগুলির মতো ) get_query_var( 'page' )প্যাগিট করতে ব্যবহার করে। ওয়ার্ডপ্রেস ৪.৪ ( এবং v4.4.1 এ ) এর সাথে একটি বাগ এসেছিল যা পৃষ্ঠাগুলি ব্যবহারের সময় পৃষ্ঠাগুলি নিয়ে সমস্যা সৃষ্টি করে get_query_var( 'page' )

ট্র্যাক টিকিট # 35365 এর মতো বর্তমান বাগ রিপোর্টগুলি কেবল স্থির সম্মুখ পৃষ্ঠাগুলির উল্লেখ করে যা পৃষ্ঠাতে সমস্যা রয়েছে, তবে বাগের সাথে সম্পর্কিত হিসাবে get_query_var( 'page' ), আমি মনে করি যে এটি একক পোস্ট পৃষ্ঠাতেও সমস্যা সৃষ্টি করবে যা এটি ব্যবহার করে get_query_var( 'page' )

ট্র্যাকের টিকিটের বর্ণনায় আপনার প্যাচগুলি চেষ্টা করা উচিত। যদি এটি কাজ করে, আপনি প্যাচটি প্রয়োগ করতে পারেন এবং v4.4.2 এর জন্য অপেক্ষা করতে পারেন যা এই বাগটি ঠিক করে দেবে


1
আশা করি এটি ওপি-র জন্য সমস্যা, খুব সম্ভবত শোনাচ্ছে (আজ এটি খনন করতে সক্ষম নয় ;-)।
বার্জিরে

1
স্থির চেষ্টা, নিষ্ক্রিয় পারমলিংকস; পরিবর্তন নেই.
মিল্মেবার

1
সময় পেলেই আমি এটি খতিয়ে দেখব। আমি মনে করি যে উত্তরটি বাগের মধ্যে রয়েছে, এটি কেবল এটি সন্ধান করা। আশা করি আপনি শিগগিরই সমাধান খুঁজে পেয়েছেন
পিটার গুসেন

2
আমার আপডেটটি দেখুন, আমি বাগটি পেয়েছি এবং একটি বাগ রিপোর্টও দায়ের করেছি
পিটার গুজন

2
নিশ্চিত হয়ে গেছে যে একবার এই লাইনগুলিতে মন্তব্য করার পরে সমস্ত 3 পদ্ধতি কাজ করে :) বন্ধ টিকিট 35544 আপনার পক্ষে
মিলম্বার

4

আপনি যে তিনটি উদাহরণ সরবরাহ করেছেন তার জন্য একটি সিনট্যাক্স ত্রুটি রয়েছে:

add_filter('content_pagination', 'custom_content'), 10, 2);

add_action('the_post', 'custom_content'));

add_action('template_redirect', 'custom_content'));

যেখানে একটি অতিরিক্ত )যুক্ত করা হয়।

এই লাইনগুলি প্রতিস্থাপন করুন:

add_filter( 'content_pagination', 'custom_content', 10, 2);

add_action( 'the_post', 'custom_content' );

add_action( 'template_redirect', 'custom_content' );

আমি গ্লোবাল অবজেক্টগুলির সাথে সাধারণভাবে ঘোরাঘুরি করার পরামর্শ দেব না, তাই content_paginationফিল্টার সহ আপনার শেষ উদাহরণটি এখানে যাওয়ার উপায় I

আপনি খালি পৃষ্ঠাগুলি এগুলি যুক্ত এড়াতে চাইবেন:

if( ! empty( $content ) )
    $pages[] = $content;

এখানে একটি নিখোঁজও )রয়েছে:

$content = html_entity_decode(stripslashes(get_option('custom_content'));

1
আমার ভুল, অতিরিক্ত) আমার প্রকৃত বাস্তবায়নের সাথে তারা যে শ্রেণীতে রয়েছে সেগুলি অনুলিপি করা এবং আটকানো থেকে বঞ্চিত ছিল। আমি সেগুলি অপস থেকে সরিয়েছি। দুর্ভাগ্যক্রমে বিষয়বস্তু_পৃষ্ঠাবরণ সংস্করণ 404 ত্রুটিটিও সংশোধন করে না।
মেলম্বার

1
$ বিষয়বস্তু লাইনে একটি নিখোঁজ রয়েছে - আপডেটটি দেখুন। @ মিলাম্বার
বার্গিরে

1
ধন্যবাদ, স্থির। অপি কোডটিতে আপনি যে কোনও সিনট্যাক্স ত্রুটি দেখতে পাচ্ছেন তা পোস্টের জন্য এটি সহজ করে তোলা।
মিলাম্বার

2
ঠিক আছে, আমি এটি একটি ভ্যানিলা ডাব্লুপি 4.4 ইনস্টল করে বিশটি ষোল থিমটি দিয়ে পরীক্ষা করেছি এবং এটি সেখানে প্রত্যাশার মতো কাজ করে, তাই আমি মনে করি এটি আপনার সেটআপে অন্য কিছু হতে পারে যা আপনাকে সমস্যা দিচ্ছে। @ মিলাম্বার
বার্গিরে

1
আশ্চর্যের বিষয়, আমি এটি টি-টোয়েন্টিফিনের সাথে 2 টি পৃথক দেব পরিবেশে চেষ্টা করেছি এবং তাদের উভয়ের একই ফলাফল ছিল। আমি এটি আবার দেখে নেব, ধন্যবাদ @ বিবারগায়ার
মিলিম্বার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.