إذا كنت تبحث عن إضافة دعم ترقيم الصفحات إلى سمة WordPress الخاصة بك بأرقام رائعة بدلاً من المنشور الافتراضي التالي والسابق ، فيمكنك القيام بذلك باستخدام المكون الإضافي PageNavi الشهير ، ومع ذلك ، أفضل إضافة ترقيم الصفحات يدويًا إلى السمات الخاصة بي حتى لا يفعلها الأشخاص يجب أن تذهب للبحث عن مكون إضافي. كما أنه يساعد في الحفاظ على الموقع أسرع بدون جميع البرامج النصية الخارجية و CSS.
لحسن الحظ ، هناك وظيفة رائعة في WordPress تسمى ” paginate_links ” والتي تمت إضافتها في WordPress 2.1 وستتيح لك إنشاء تنقل نمط مرقم لأي استعلام على موقعك. إليك برنامج تعليمي سريع لإضافة تنقل بسيط في الصفحة إلى السمة الخاصة بك والتي تبدو تمامًا مثل ترقيم الصفحات في ” إجمالي WordPressTheme “.
ترقيم الصفحات PHP
ما عليك سوى إضافة الكود التالي في نهاية ملف jobs.php (أو أي ملف في قالبك تريد الاحتفاظ به).
// Numbered Pagination
if ( !function_exists( 'wpex_pagination' ) ) {
function wpex_pagination() {
$prev_arrow = is_rtl() ? '→' : '←';
$next_arrow = is_rtl() ? '←' : '→';
global $wp_query;
$total = $wp_query->max_num_pages;
$big = 999999999; // need an unlikely integer
if( $total > 1 ) {
if( !$current_page = get_query_var('paged') )
$current_page = 1;
if( get_option('permalink_structure') ) {
$format = 'page/%#%/';
} else {
$format = '&paged=%#%';
}
echo paginate_links(array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => $format,
'current' => max( 1, get_query_var('paged') ),
'total' => $total,
'mid_size' => 3,
'type' => 'list',
'prev_text' => $prev_arrow,
'next_text' => $next_arrow,
) );
}
}
}
ترقيم الصفحات CSS
انسخ CSS التالي والصقه في ملف style.css.
ul.page-numbers {
list-style: none;
margin: 0;
}
.page-numbers:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
ul.page-numbers li {
display: block;
float: left;
margin: 0 4px 4px 0;
text-align: center;
}
.page-numbers a,
.page-numbers span {
line-height: 1.6em;
display: block;
padding: 0 6px;
height: 18px;
line-height: 18px;
font-size: 12px;
text-decoration: none;
font-weight: 400;
cursor: pointer;
border: 1px solid #ddd;
color: #888;
}
.page-numbers a span { padding: 0 }
.page-numbers a:hover,
.page-numbers.current,
.page-numbers.current:hover {
color: #000;
background: #f7f7f7;
text-decoration: none;
}
.page-numbers:hover { text-decoration: none }
إضافة وظيفة ترقيم الصفحات إلى الموضوع الخاص بك
إن استدعاء وظيفة ترقيم الصفحات أمر بسيط حقًا. كل ما عليك فعله هو إضافة الكود التالي إلى ملفات السمات الخاصة بك حيث تريد إظهار أي نوع من ترقيم الصفحات. الأكثر شيوعًا هي index.php و home.php و category.php و tags.php و archive.php و search.php. ولكن إذا كان لديك أي قوالب صفحات مخصصة مع دعم ترقيم الصفحات ، فستحتاج إلى إضافتها هنا.
استبدل ترقيم الصفحات الافتراضي بما يلي (يقع عادةً في مكان ما بعد endif):
<؟ php wpex_pagination ()؛ ؟>
استعلامات مخصصة؟
إذا كنت تقوم بإنشاء استعلام مخصص باستخدام WP_Query ، فلن تعمل هذه الوظيفة إلا إذا قمت بتعريف استعلامك في المتغير $ wp_query (وهو أمر سيء ، فلا تفعل ذلك). لإصلاحها ، أقوم عمومًا بإنشاء استعلامات جديدة مثل ما يلي:
$ wpex_query = WP_Query جديد ($ args) ؛
بهذه الطريقة يمكنني تغيير وظيفة ترقيم الصفحات الرئيسية للبحث عن المتغير عند إنشاء ترقيم الصفحات ، مثال (تحرير المقتطف الأول):
global $wp_query, $wpex_query;
if ( $wpex_query ) {
$total = $wpex_query->max_num_pages;
} else {
$total = $wp_query->max_num_pages;
}
تحديث : في هذا المثال ، أتحقق من المتغير العام … ومع ذلك يمكنك ببساطة تمرير متغير الاستعلام مباشرة إلى وظيفة wpex_pagination التي ربما تكون خيارًا أفضل 😉