5 مقتطفات من كود ترقيم الصفحات في WordPress مع أمثلة [بسيطة إلى متقدمة]
نشرت: 2020-02-03إذا كنت تبحث عن أفضل كود ترقيم الصفحات في WordPress مع أمثلة محددة ، فستجد أن أمثلة مقتطفات كود الترقيم التي تمت مشاركتها في هذا المنشور مفيدة للغاية. يمكنك تطبيق كود ترقيم الصفحات هذا في قالب WordPress أو في مكون WordPress الإضافي المخصص الذي يتطلب ترقيم الصفحات. اسمحوا لي أن أقطع المطاردة وأشارك مقتطفات كود ترقيم الصفحات المفضلة لدي:
# 1) WordPress Loop مع رمز ترقيم الصفحات البسيط
إذا كنت تريد إضافة ترقيم الصفحات داخل حلقة WordPress ، يمكنك استخدام رمز ترقيم الصفحات التالي والسابق أدناه:
<؟ php if (have_posts ()):؟> <! - أضف وظائف ترقيم الصفحات هنا. -> <! - بداية الحلقة الرئيسية. -> <؟ php while (have_posts ()): the_post ()؛ ؟> <! - بقية الحلقة الرئيسية لموضوعك -> <؟ php end while؛ ؟> <! - نهاية الحلقة الرئيسية -> <! - أضف وظائف ترقيم الصفحات هنا. -> <div class = "nav-previous alignleft"> <؟ php previous_posts_link ('Older posts')؛ ؟> </div> <div class = "nav-next alignright"> <؟ php next_posts_link ('Newer posts')؛ ؟> </div> <؟ php else:؟> <p> <؟ php _e ('معذرة ، لا توجد مشاركات مطابقة للمعايير الخاصة بك.')؛ ؟> </p> <؟ php endif؛ ؟>
# 2) ترقيم الصفحات الرقمي في WordPress
خيار آخر رائع لترقيم الصفحات في WordPress هو استخدام ترقيم الصفحات الرقمي الذي يضيف أرقامًا إلى المنشورات ويجمع المنشورات بناءً على رقم. على سبيل المثال ، يمكنك عرض 5 منشورات على الصفحة. هذا هو رمز ترقيم الصفحات في WordPress للترقيم الرقمي للصفحات :
<؟ php # الخطوة 1: أنشئ وظيفة ترقيم الصفحات الرقمية في WordPress دالة njengah_numeric_pagination () { إذا (is_singular ()) إرجاع؛ wp_query $ العالمية ؛ / ** أوقف التنفيذ إذا كانت هناك صفحة واحدة فقط * / إذا (wp_query $-> max_num_pages <= 1) إرجاع؛ $ paged = get_query_var ('paged')؟ absint (get_query_var ('paged')): 1 ؛ ماكس $ = intval ($ wp_query-> max_num_pages) ؛ / ** أضف الصفحة الحالية إلى المصفوفة * / إذا ($ paged> = 1) روابط $ [] = $ paged؛ / ** أضف الصفحات حول الصفحة الحالية إلى المصفوفة * / إذا ($ paged> = 3) { $ links [] = $ paged - 1؛ $ links [] = $ paged - 2؛ } إذا (($ paged + 2) <= $ max) { روابط $ [] = $ paged + 2؛ روابط $ [] = $ paged + 1؛ } صدى '<div class = "navigation"> <ul>'. "\ن"؛ / ** رابط الوظيفة السابقة * / إذا (get_previous_posts_link ()) printf ('<li>٪ s </li>'. "\ n"، get_previous_posts_link ()) ؛ / ** رابط إلى الصفحة الأولى ، بالإضافة إلى علامات الحذف إذا لزم الأمر * / إذا (! in_array (1، $ links)) { $ class = 1 == $ paged؟ 'class = "active"': ''؛ printf ('<li٪ s> <a href="٪s">٪ s </a> </li>'. "\ n"، $ class، esc_url (get_pagenum_link (1))، '1')؛ إذا (! in_array (2، $ links)) صدى "<li>… </li>"؛ } / ** رابط إلى الصفحة الحالية ، بالإضافة إلى صفحتين في أي من الاتجاهين إذا لزم الأمر * / فرز (روابط $) ؛ foreach ((مجموعة) $ links as $ link) { $ class = $ paged == $ link؟ 'class = "active"': ''؛ printf ('<li٪ s> <a href="٪s">٪ s </a> </li>'. "\ n"، $ class، esc_url (get_pagenum_link ($ link))، $ link)؛ } / ** رابط إلى الصفحة الأخيرة ، بالإضافة إلى علامات الحذف إذا لزم الأمر * / إذا (! in_array ($ max، $ links)) { إذا (! in_array ($ max - 1، $ links)) صدى "<li>… </li>". "\ن"؛ $ class = $ paged == $ max؟ 'class = "active"': ''؛ printf ('<li٪ s> <a href="٪s">٪ s </a> </li>'. "\ n"، $ class، esc_url (get_pagenum_link ($ max))، $ max)؛ } / ** رابط المشاركة التالية * / إذا (get_next_posts_link ()) printf ('<li>٪ s </li>'. "\ n"، get_next_posts_link ())؛ صدى "</ul> </div>". "\ن"؛ } # الخطوة 2: أضف إلى القوالب باستخدام هذا الاستدعاء للوظيفة أعلاه njengah_numeric_pagination () ، # الخطوة 3: صمم ترقيم الصفحات بشكل مناسب ليناسب أنماط المظهر الخاص بك / ** فئات CSS لتصميم ترقيم الصفحات * / .navigation li { } .navigation li a { }
# 3) مثال على ترقيم صفحات أجاكس ووردبريس
إذا كنت تبحث عن رمز ترقيم الصفحات Ajax في WordPress ، فقد وجدت مثالًا على GitHub يعمل جيدًا والرمز في شكل مكون إضافي. لقد قمت بتخصيصه لجعله مكونًا إضافيًا لبرنامجنا التعليمي ويمكن نسخ الكود إلى ملف وحفظه بتنسيق مضغوط وتثبيته كمكوِّن إضافي. فيما يلي مثال على كود WordPress Ajax pagination code:
<؟ php / ** * اسم البرنامج المساعد: Njengah Ajax Pagination * عنوان URL للمكون الإضافي: https://njengah.com * الوصف: مثال على ترقيم صفحات أجاكس ووردبريس. * الإصدار: 1.0.0 * المؤلف: جو نجينجا * عنوان URL للمؤلف: https://njengah.com * الترخيص: GPL-2.0 + * عنوان URI للترخيص: http://www.gnu.org/licenses/gpl-2.0.txt * مجال النص: cs-pagination * مسار المجال: / اللغات * / // الائتمان - كاسبر شولتز فئة Njengah_Ajax_Pagination { عدد_كل_صفحة محمي بالدولار ؛ الوظيفة العامة __construct () { $ this-> num_per_page = 5 ؛ $ this-> init ()؛ } تهيئة الوظيفة المحمية () { add_action ('init'، array ($ this، 'add_rewrite_rule'))؛ add_filter ('query_vars'، array ($ this، 'add_query_vars'))؛ add_action ('parse_request'، array ($ this، 'parse_request'))؛ } / ** * تحليل الطلب الوارد وإنشاء النتيجة. * / دالة parse_request ($ wp) { إذا (array_key_exists ('cs-page'، $ wp-> query_vars)) { $ page = isset ($ wp-> query_vars ['cs-page'])؟ $ wp-> query_vars ['صفحة cs']: 1؛ $ args = مجموعة ( 'post_type' => 'post'، 'post_per_page' => $ this-> num_per_page ، 'paged' => $ page، ) ؛ استعلام دولار = WP_Query جديد ($ args) ؛ // نحتاج إلى معرفة إجمالي عدد المشاركات التي تم العثور عليها. قيم $ ['total'] = $ query-> found_posts؛ // والصفحة الواحدة. قيم $ ['per_page'] = $ this-> num_per_page؛ قيم $ ['posts'] = array () ؛ // يتيح فقط إرسال البيانات التي نحتاجها. بينما (استعلام $-> have_posts ()) { الاستعلام $-> the_post ()؛ قيم $ ['posts'] [] = مجموعة ( 'ID' => get_the_ID () ، 'title' => get_the_title () ، ) ؛ } wp_reset_postdata () ، wp_send_json (قيم $) ، } } / ** * أضف ارغس الاستعلام المطلوبة. * / دالة add_query_vars (استعلام_فارس $) { $ query_vars [] = 'cs-page' ؛ إرجاع $ query_vars؛ } / ** * يضيف قاعدة إعادة كتابة لتقسيم الصفحات المخصص لدينا حتى نتمكن من تجنب استخدام admin-ajax. * / الوظيفة add_rewrite_rule () { add_rewrite_rule ('^ cs-paginate / ([0-9] +) /؟'، 'index.php؟ cs-page = $ يتطابق مع [1]'، 'top') ؛ } / ** * قواعد إعادة كتابة دافق. * / تثبيت وظيفة ثابتة () { flush_rewrite_rules () ، } } دالة njengah_ajax_pagination_init () { new Njengah_Ajax_Pagination () ؛ } njengah_ajax_pagination_init () ؛ // تحتاج إلى مسح قواعد إعادة الكتابة عند التنشيط. Register_activation_hook (__FILE__، array ('Njengah_Ajax_Pagination'، 'install')) ؛
# 4) ترقيم صفحات WordPress لنوع المنشور المخصص
بالنسبة إلى ترقيم الصفحات لنوع المنشور المخصص ، تحتاج إلى استخدام WP_query للتحقق من نوع المنشور المخصص وفي الوسائط ، يمكنك تمرير نوع المنشور المخصص في post_type ثم استخدام رمز ترقيم الصفحات لإنشاء ترقيم صفحات WordPress لنوع المنشور المخصص.
فيما يلي الكود الذي يجب عليك إضافته إلى function.php واستبدال post_type بآخر من النوع slug المخصص:
<؟ php / ** * ترقيم صفحات WordPress لأنواع المنشورات المخصصة * / <؟ php $ paged = (get_query_var ('paged'))؟ get_query_var ("paged"): 1 ، $ args = مجموعة ( 'post_type' => 'custom_post_type_name' ، 'posts_per_page' => 10 ، 'paged' => $ paged ) ؛ حلقة $ = WP_Query جديد ($ args) ؛ while ($ loop-> have_posts ()): $ loop-> the_post ()؛ // محتوى نوع المنشور المخصص في غضون ذلك ؟> <nav class = "pagination"> <؟ php دولار كبير = 999999999 ؛ ارتباطات_صفحات صدى صدى (مجموعة ( 'base' => str_replace ($ big، '٪ #٪'، get_pagenum_link ($ big)) ، 'format' => '؟ paged =٪ #٪'، 'current' => max (1، get_query_var ('paged')) ، "إجمالي" => حلقة $-> max_num_pages ، 'prev_text' => '& laquo؛'، 'next_text' => '& raquo؛' )) ؛ ؟> </nav> <؟ php wp_reset_postdata () ؛ ؟>
# 5 مخصص ترقيم الصفحات في WordPress
يستخدم رمز ترقيم الصفحات المخصص للاستعلام في WordPress WP_query للحصول على المنشور المحدد الذي نريد ترقيم الصفحات ثم يجمع نتائج الاستعلام مع كود ترقيم الصفحات لتطبيق ترقيم الصفحات على المنشورات المحددة التي اخترناها. فيما يلي مثال على ترقيم صفحات الاستعلام المخصص في WordPress.
<؟ php // استعلام مخصص $ paged = (get_query_var ('paged'))؟ absint (get_query_var ('paged')): 1 ؛ $ args = مجموعة ( 'posts_per_page' => 5 ، 'category_name' => 'معرض' ، 'paged' => $ paged، ) ؛ $ the_query = WP_Query جديد ($ args) ؛ ؟> <! - الحلقة الخ .. -> <؟ php // ترقيم الصفحات دولار كبير = 999999999 ؛ // تحتاج إلى عدد صحيح غير متوقع ارتباطات_صفحات صدى صدى (مجموعة ( 'base' => str_replace ($ big، '٪ #٪'، esc_url (get_pagenum_link ($ big))) ، 'format' => '؟ paged =٪ #٪'، 'current' => max (1، get_query_var ('paged')) ، "total" => $ the_query-> max_num_pages )) ؛
استنتاج
في هذا المنشور ، قمنا بتسليط الضوء على الأنواع المختلفة من ترقيم الصفحات في WordPress ورمز ترقيم الصفحات المشترك المحدد لاستخدامه في كل حالة. يمكن إضافة رمز ترقيم الصفحات هذا في WordPress إلى السمات أو المكون الإضافي الحالي ويمكن أيضًا إضافته إلى WordPress كمكوِّن إضافي مستقل.