"/ পৃষ্ঠা / 2 /" কেন কাজ করছে না?


11

অবশেষে নীচের কোডটি নিয়ে কাজ করার জন্য পৃষ্ঠাগুলি পেল, কিন্তু এখন পৃষ্ঠা-লিঙ্কটি / ভিডিও / পৃষ্ঠা / 2 / এর সাথে লিঙ্ক করে, যা বিদ্যমান নেই। আমি কীভাবে পৃষ্ঠা 2 এ কাজ করব?

<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('post_type=videos&showposts=1'.'&paged='.$paged);

while ($wp_query->have_posts()) : $wp_query->the_post();
  //display stuff
endwhile;           

php  wp_pagenavi();
 ?>

আমি এর মতো মূল ক্যোয়ারিকে ওভাররাইড করার পরামর্শ দেব না, আপনি কি ব্যবহার বিবেচনা করেছেন pre_get_posts? তারপরে আপনি নিজের লেখা লেখার পরিবর্তে বিল্ট ইন পেজিনেশন কোডটি ব্যবহার করতে পারেন এবং আপনি কোনও স্ট্যান্ডার্ড পোস্ট লুপে সরল করতে পারেন
টম জে নওয়েল

এছাড়াও, ওয়ার্ডপ্রেস পোস্ট ধরণের জন্য একটি স্ট্যান্ডার্ড আর্কাইভ পৃষ্ঠা সরবরাহ করে, সুতরাং আপনার ইতিমধ্যে একটি পোস্ট সংরক্ষণাগারটি /videos/লোড হবে archive-videos.php, যাতে কোনও জিজ্ঞাসা নিয়ে কোনও গোলযোগের প্রয়োজন নেই
টম জে নওয়েল

উত্তর:


15

উত্তর খুঁজে পেয়েছি:

দীর্ঘ দিনের ওয়ার্ডপ্রেস কোর মাধ্যমে ডিবাগিংয়ের পরে, আমি এই সমস্যাটি সমাধান করতে সক্ষম হয়েছি।

মূলত, আপনার একই পৃষ্ঠাতে একটি পৃষ্ঠা এবং কাস্টম পোস্ট টাইপ থাকতে পারে। আপনি যদি করেন তবে পারমালিঙ্ক পুনর্লিখনের নিয়ম গুলিয়ে যাবে এবং একটি 404 ট্রিগার করবে।

আমি ব্যবহার করছি একটি খুব সহজ সমাধান: কাস্টম পোস্ট ধরণের তালিকা পৃষ্ঠাটি বহুবচন (উদাহরণস্বরূপ পণ্য) বলা হয় এবং প্রকৃত পোস্ট টাইপের নাম একক (যেমন পণ্য) হয়। সুতরাং তারা মতবিরোধ করবেন না এবং সব ঠিক আছে।

কাজ সম্পন্ন! আশা করি এটি মানুষের সময় সাশ্রয় করবে।


6
আমার ধারণা, কেবলমাত্র কাস্টম পোস্ট নয়, আপনার একই নামে একটি পোস্ট এবং একটি পৃষ্ঠাও থাকতে পারে না।
রটউইক গাঙ্গুরদে

4

দীর্ঘ সময় পরে আমি এই সমস্যার সমাধান পেয়েছি ( ফ্রেঞ্জব্লগকে ধন্যবাদ )।

আপনি যদি 4.2 বা তার বেশি সংস্করণ ব্যবহার করছেন তবে আপনার functions.phpফাইলে নিম্নলিখিত লাইনগুলি যুক্ত করতে হবে:

add_filter( 'redirect_canonical', 'custom_disable_redirect_canonical' );
function custom_disable_redirect_canonical( $redirect_url ) {
    if ( is_paged() && is_singular() ) $redirect_url = false; 
    return $redirect_url; 
}

সবকিছু এখন সূক্ষ্ম কাজ করা হয়!


1

আপনার একই পৃষ্ঠাতে একটি পৃষ্ঠা এবং কাস্টম পোস্ট টাইপ থাকতে পারে

কয়েক বছর আগে গাছটি অসম্ভব ছিল তবে এখন আপনি পারেন।

প্রথমে $argsআপনার পোস্টের ধরণে এই লাইনগুলি যুক্ত করুন :

'has_archive' => false,
'rewrite'     => array(
                 'slug'       => 'your slug', // if you need slug
                 'with_front' => false,
                 ),

দ্বিতীয়ত, functions.phpযোগ ক্রিয়ায়:

add_action('init', 'custom_rewrite_basic');
function custom_rewrite_basic() {
    global $wp_post_types;
    foreach ($wp_post_types as $wp_post_type) {
        if ($wp_post_type->_builtin) continue;
        if (!$wp_post_type->has_archive && isset($wp_post_type->rewrite) && isset($wp_post_type->rewrite['with_front']) && !$wp_post_type->rewrite['with_front']) {
            $slug = (isset($wp_post_type->rewrite['slug']) ? $wp_post_type->rewrite['slug'] : $wp_post_type->name);
            $page = get_page_by_slug($slug);
            if ($page) add_rewrite_rule('^' .$slug .'/page/([0-9]+)/?', 'index.php?page_id=' .$page->ID .'&paged=$matches[1]', 'top');
        }
    }
}

function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) {
    global $wpdb;

    $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s AND post_status = 'publish'", $page_slug, $post_type ) );

    return ($page ? get_post($page, $output) : NULL);
}

ড্যাশবোর্ডে নিয়ম ফ্লাশ করতে ভুলবেন না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.