বর্তমান পৃষ্ঠা নম্বর পান


15

এমন পরিস্থিতিতে যেখানে প্রতি পৃষ্ঠায় 20 টি পোস্ট রয়েছে। নীচে কিছু সুন্দর পৃষ্ঠা লিঙ্ক তৈরি করতে আমি বর্তমান পৃষ্ঠা নম্বর পেতে চাই। আপনি বর্তমান পৃষ্ঠাটি কীভাবে পাবেন। আমি এই চেষ্টা করেছিলাম

<?php echo '(Page '.$page.' of '.$numpages.')'; ?>

এবং এটি প্রতিটি পৃষ্ঠায় 1 এর 1 টি পৃষ্ঠা বলে।

কোন ধারনা,

অবিশ্বাস্য

উত্তর:


23

ওয়ার্ডপ্রেস যখন এই জাতীয় পৃষ্ঠাগুলি ব্যবহার করে, তখন $pagedএটির কী রয়েছে এমন একটি ক্যোয়ারী ভেরিয়েবল রয়েছে । সুতরাং পৃষ্ঠা 1 $paged=1এবং পৃষ্ঠা 15 হয় $paged=15

আপনি নিম্নলিখিত কোডের সাহায্যে এই ভেরিয়েবলের মান পেতে পারেন:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

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

$total_post_count = wp_count_posts();
$published_post_count = $total_post_count->publish;
$total_pages = ceil( $published_post_count / $posts_per_page );

আমি এটি এখনও পরীক্ষা করিনি, তবে আপনাকে $posts_per_pageএকইভাবে আনতে হবে $paged(ব্যবহার করে get_query_var())।


8
কেন ব্যবহার $wp_query->max_num_pagesকরবেন না ?
t31os

1
এটি একটি শব্দ বিকল্প। $wp_queryআমি সম্পূর্ণরূপে ভুলে যাওয়া অংশটি এখানে ছিল: - /
EAMAN

@ এ্যামান বিটিডব্লিউ: এখানে found_posts"বর্তমান ক্যোয়ারী প্যারামিটারগুলির সাথে মিলিয়ে পাওয়া মোট পোস্টের সংখ্যা", ডাব্লুপি_কাউন্ট_পোস্টগুলি () ওভারহেডের ধরণ property
jave.web

8

আপনি কোডটি একটি একক লাইন দিয়ে এটি করতে পারেন, তবে তারপরে আবারও আপনি অন্য কোনও স্থানে কোড যুক্ত করতে চাইতে পারেন, তাই কোনও ফাংশন সাধারণত আরও কার্যকর হয়।

function current_paged( $var = '' ) {
    if( empty( $var ) ) {
        global $wp_query;
        if( !isset( $wp_query->max_num_pages ) )
            return;
        $pages = $wp_query->max_num_pages;
    }
    else {
        global $$var;
            if( !is_a( $$var, 'WP_Query' ) )
                return;
        if( !isset( $$var->max_num_pages ) || !isset( $$var ) )
            return;
        $pages = absint( $$var->max_num_pages );
    }
    if( $pages < 1 )
        return;
    $page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
    echo 'Page ' . $page . ' of ' . $pages;
}

দ্রষ্টব্য: কোড আপনার ফাংশন ফাইলে যেতে পারে।

আপনি যে ফাংশনটি "y এর পৃষ্ঠা x" প্রদর্শন করতে চান সেখানে কেবল কল করুন eg

<?php current_paged(); ?>

আপনার যদি প্রয়োজন হয় কোনও কাস্টম ক্যোয়ারী সহ কাজ করার জন্য, যেমন। আপনি যেটি তৈরি করে তৈরি করেছেন WP_Query, তারপরে ভেরিয়েবলটির নামের সাথে পাস করুন যা ক্যোয়ারিকে ফাংশনে ধারণ করে।

অ-অরক্ষিত ক্যোয়ারির উদাহরণ:

$fred = new WP_Query;
$fred->query();
if( $fred->have_posts() ) 
... etc..

পূর্বে পোস্ট করা ফাংশনটি ব্যবহার করে কাস্টম ক্যোয়ারির জন্য বর্তমান পৃষ্ঠাটি পাওয়া যাচ্ছে ..

<?php current_paged( 'fred' ); ?>

আপনি যদি কেবলমাত্র কাস্টম ক্যোয়ারী সমর্থনটি সম্পূর্ণরূপে ভুলে যেতে চান এবং আপনি যদি একটি ওয়ান-লাইনার খুঁজছেন, তবে এটি করা উচিত ..

<?php echo 'Page '. ( get_query_var('paged') ? get_query_var('paged') : 1 ) . ' of ' . $wp_query->max_num_pages; ?>

আশা করি এইটি কাজ করবে.. :)


1
আমি যদি আপনি ছিলাম যদি আমি $varজিজ্ঞাসা করি কিনা তা পরীক্ষা করে দেখছি : if( is_a( $var, 'WP_Query' ) )এটি যদি কোনও ক্যোয়ারী অবজেক্ট হয় তবে তা সত্য হবে will
জন পি ব্লচ

হ্যাঁ, এটি আসলে একটি খুব বুদ্ধিমান ধারণা, সম্পন্ন!
t31os


0

আমার সমস্ত সংরক্ষণাগার পৃষ্ঠায় কাজ করে এমন একটি বিকল্প হ'ল:

$paged_maxnum = $GLOBALS['wp_query']->max_num_pages;

if ( $paged_maxnum > 1 ) {

    $paged_current_page = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
    $title_page_nrs = 'page nr ' . $paged_current_page . ' of ' . $paged_maxnum;

    echo '<title>' . get_the_archive_title( '', false ) . ' - ' . $title_page_nrs . ' | Your Website Name</title>';

} else {

    echo '<title>' . get_the_archive_title( '', false ) . ' | Your Website Name</title>'; 

}

এতে যদি একাধিক পৃষ্ঠা থাকে তবে প্রথম জিজ্ঞাসা wp_query, তারপরে বর্তমান পৃষ্ঠার মাধ্যমে শিরোনাম $paged_current_pageএবং মোট পৃষ্ঠাগুলির সাথে একত্রিত করুন $title_page_nrs। শেষ পর্যন্ত echo। যদি প্রথমে 1 পৃষ্ঠার উপরে, তবে elseযদি পৃষ্ঠাযুক্ত না হয়। এটি আমার সংরক্ষণাগারটিতে যায় ph এটি উৎপন্ন করে:

<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>

অথবা

<title>Taxonomy title | Your Website Name</title>

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