পেজযুক্ত পোস্টগুলি - নম্বরগুলি এবং পরবর্তী / পূর্ববর্তী লিঙ্কগুলি কীভাবে ব্যবহার করবেন?


17

আমি চাই যে পৃষ্ঠাগুলির নম্বরগুলি, এই সংখ্যার আগে "পূর্ববর্তী" শব্দটি এবং সেই সংখ্যার পরে একটি "পরবর্তী" প্রদর্শন করুন এটি দেখতে এই রকম হবে:

পূর্ববর্তী 1, 2, 3, 4 পরবর্তী

আমি একটি প্লাগইন ছাড়াই এটি করার চেষ্টা করছি । আমি এখন পর্যন্ত যা চেষ্টা করেছি তা এখানে রয়েছে তবে এটি কার্যকর নয়, এটি কেবল সংখ্যা প্রদর্শন করছে।

<?php wp_link_pages(array(
    'before' => '<span style="clear:both; display:block">Pages', 
    'after'  => '</span>',
    'next_or_number'=>'number',
    'previouspagelink' => 'previous',
    'nextpagelink'=> 'Next'
)); ?>

উত্তর:


12

আপনি যে ফাংশনটি wp_link_pagesকোডেক্স ব্যবহার করছেন তাতে আপনার ডিফল্টরূপে সন্ধান করা বৈশিষ্ট্য নেই।

তবে আপনি কলব্যাক ফাংশনটি ব্যবহার করে সহজেই এটি প্রসারিত করতে পারেন, সেই ফাংশন যুক্তিগুলিতে ফিল্টার হিসাবে নিবন্ধিত :

add_filter('wp_link_pages_args', 'wp_link_pages_args_prevnext_add');

ফিল্টার তারপর প্যারামিটার যে ফাংশন ব্যবহার করা হয় পরিবর্তন করতে হবে on-the-উড়ে করুন এবং মিসিং লিঙ্ক উদ্বুদ্ধ prevএবং nextআর্গুমেন্ট যার বাম এবং ডান পাশ আউটপুট হয় সংখ্যাযুক্ত লিংক তালিকা ( next_or_number' => 'number'):

/**
 * Add prev and next links to a numbered page link list
 */
function wp_link_pages_args_prevnext_add($args)
{
    global $page, $numpages, $more, $pagenow;

    if (!$args['next_or_number'] == 'next_and_number') 
        return $args; # exit early

    $args['next_or_number'] = 'number'; # keep numbering for the main part
    if (!$more)
        return $args; # exit early

    if($page-1) # there is a previous page
        $args['before'] .= _wp_link_page($page-1)
            . $args['link_before']. $args['previouspagelink'] . $args['link_after'] . '</a>'
        ;

    if ($page<$numpages) # there is a next page
        $args['after'] = _wp_link_page($page+1)
            . $args['link_before'] . ' ' . $args['nextpagelink'] . $args['link_after'] . '</a>'
            . $args['after']
        ;

    return $args;
}

ব্যবহার:

wp_link_pages(array(
    'before' => '<p>' . __('Pages:'),
    'after' => '</p>',
    'next_or_number' => 'next_and_number', # activate parameter overloading
    'nextpagelink' => __('Next'),
    'previouspagelink' => __('Previous'),
    'pagelink' => '%',
    'echo' => 1 )
);

যদি আপনার থিমটি সর্বদা পূর্ববর্তী এবং পরবর্তী লিঙ্কগুলি ব্যবহার করে তবে আপনি যখনই number(ডিফল্ট) ব্যবহৃত হয় তখন এটি ডিফল্ট আচরণ করতে আপনি ফাংশনটি কিছুটা পরিবর্তন করতে পারেন , সুতরাং আপনার থিমগুলিতে আপনাকে কম লেখার দরকার আছে।

এটি ভেলভেট ব্লুজ দ্বারা প্রস্তাবিত হিসাবে কিছুটা আলাদা বাস্তবায়ন ।


কয়েকটি মন্তব্য এবং প্রারম্ভিক রিটার্ন ব্যতীত বাস্তবায়ন, বিকল্পের নাম এবং ব্যাখ্যা আমার কাছে ঠিক একই। আমি কি কিছু উপেক্ষা করছি? আপনার সমাধান কি সুবিধা দেয়? ধন্যবাদ।
ভেলভেট ব্লুজ

সম্ভবত আমি কোডটি তুলনা করি।
hakre

যতক্ষণ প্রশ্ন এখানে থাকে ততক্ষণ হাকারের সমাধান পাওয়া যায়। সম্পূর্ণ উত্তর (= বাহ্যিক উত্সের উপর নির্ভর না করে বোধগম্য) সর্বদা স্ট্যাকএক্সচেঞ্জে পছন্দ করা হয়।
ফুসিয়া

6

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

বলা হচ্ছে, প্লাগইন ছাড়াই এটি করার জন্য তিনটি উপায় রয়েছে:

  1. আপনার থিমের ফাংশন.এফপি ফাইলটিতে আপনার নিজস্ব ফাংশন তৈরি করুন। কাজ করে, তবে তারপরে আপনার একটি নতুন ফাংশন হবে।
  2. এর 2-3 উদাহরণ ব্যবহার করুন wp_link_pages()খুব অদক্ষ হ্যাক
  3. একটি ফিল্টার ব্যবহার করুন। পছন্দসই পদ্ধতি । নিচে দেখ.

আমি আমার ব্লগে এটি কীভাবে করব সে সম্পর্কে একটি নিবন্ধ লিখেছি। মূলত, আমি wp_link_pages_args ফিল্টার ব্যবহার করি এবং ফাংশন.এফপি ফাইলে একটি ফাংশন যুক্ত করি যা 'নেক্সট_অ্যান্ড_নম্বার' নতুন বিকল্প যুক্ত করে।

ওয়ার্ডপ্রেস হ্যাক: ডিসপ্লে নম্বর এবং পরবর্তী / wp_link_pages সহ পূর্ববর্তী লিঙ্কগুলি ()


শীতল মানুষ ... আমি 4 টি বিশ্বব্যাপী মান ব্যবহার করে কিছু ভাবছিলাম, তবে সত্যিই কখনই কোনও সমাধানে নামেনি ... +1!
রটউইক গাঙ্গুরদে

3

এটি চেষ্টা করুন, আপনি এটি আরও কাস্টমাইজ করতে পারেন। আপনি যেমনটি চেয়েছিলেন তেমনটি করা উচিত :-)

function tp_link_pages() {
    global $page, $numpages;

    echo paginate_links( array(
        'format' => get_permalink() . '%#%/',
        'current' => $page,
        'total' => $numpages
    ) );
}

আমরা কিভাবে পরিচালনা করতে পারি? wordpress.org/support/topic/… বা পৃষ্ঠা নম্বরের আগে কীভাবে ডায়নামিক-কাস্টম-শিরোনাম যুক্ত করবেন।
রবি প্যাটেল

1

সমস্যাটি কী তা আমি পাই না ... আপনার কোনও ত্রুটি আছে?

এই কাজ করা উচিত:

<?php $args = array(
    'before'           => '<span style="clear:both; display:block">Pages',
    'after'            => '</span>',
    'nextpagelink'     => __('Next'),
    'previouspagelink' => __('Previous')
); 

wp_link_pages($args);
?> 

সংখ্যাটি ইতিমধ্যে ডিফল্ট হওয়ায় আপনাকে Next_or_number যুক্ত করার দরকার নেই।


কিছু কারণে এটি কাজ করছে না, তবে এটি আমার কাছে সঠিক বলে মনে হচ্ছে। আমি অবাক হয়েছি যদি 3.3 এ পরিবর্তন ঘটেছিল বা আমার যদি ফাংশন.এফপি তে কিছু আটকানো দরকার?
AndrettiMilas

2
হ্যাঁ আমি এটিও চেষ্টা করেছিলাম, আপনি সেট করলে এটি কাজ করে next_or_number করে next। তবে এটি কেবল 'নেক্সট' এবং 'পূর্ববর্তী' লিঙ্কগুলি দেখায়, সংখ্যাগুলি নয়!
রুটউইক গাঙ্গুরদে

1
আমার উভয়ই দরকার, উদাহরণ হিসাবে দেখানো হয়েছে।
AndrettiMilas

1

এই কোডটি কি পোস্টের লুপে আছে? কোডিং আমার কাছে ঠিক আছে। কীভাবে ব্যবহার করবেন সে সম্পর্কে এখানে কোডেক্স উদাহরণ রয়েছে:

<?php

wp_link_pages(array(
    'before' => '<p>' . __('Pages:'),
    'after' => '</p>',
    'next_or_number' => 'number',
    'nextpagelink' => __('Next page'),
    'previouspagelink' => __('Previous page'),
    'pagelink' => '%',
    'echo' => 1 )
);

?>

এই কোডটি কাজ করে না।
AndrettiMilas

কোড স্থির। দুঃখিত। কিছু বৈশিষ্ট্য একটি মান ছাড়া হয়।
Caio Alves

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

0

উত্তরটি ভিন্ন, তবে এটি অনুপ্রেরণা পেয়েছিলেন @ 荒野 无 灯 যিনি তার উত্তর মুছতে চান। সবচেয়ে সহজ এবং নমনীয় সমাধান হিসাবে ইমো এটি সেরা:

সমাধান উপর নির্ভর করে paginate_links()। কেবলমাত্র জানতে baseহবে তা হ'ল প্রথম থেকেই ইউআরএল হবে, এতে সংযোজন %_%হবে, যা পরে প্রতিস্থাপন করা হবে format। সুতরাং যতক্ষণ আমরা ব্যবহার করি get_permalink().'%_%';, আমরা জানি যে আমরা যে কোনও ক্ষেত্রে বর্তমান পোস্টে থাকব। ভিতরে format, #পৃষ্ঠাগুলি নম্বর দ্বারা প্রতিস্থাপিত হয়:

function wpse37256_paginate_paged()
{
    if ( ! $paginate_links = paginate_links( array(
         'type'      => 'array'

        ,'total'     => $GLOBALS['numpages']
        ,'mid_size'  => 1
        ,'end_size'  => 1

        #,'prev_next' => false
        ,'prev_text' => '&laquo; '.__( 'Prev', 'your_textdomain' )
        ,'next_text' => __( 'Next', 'your_textdomain' ).' &raquo;'

        ,'base'      => get_permalink().'%_%'
        ,'format'    => user_trailingslashit( '%#%' )

        ,'current'   => $GLOBALS['page']
    ) ) )
        return;

    echo "<div class='pagination-container'>{$paginate_links}</div>";
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.