كيف تجعل صفحة WordPress / الفئة / العلامة / المؤلف تعرض المقالات اللاصقة؟

WordPressتوجد وظيفة لصق مقالة مضمنة ، ولكن بشكل افتراضي يتم دعم الصفحة العليا فقط لعرض المقالات اللاصقة.

لا يمكن لصفحات الأرشيف الأخرى (مثل صفحات الفئات وصفحات العلامات وصفحات المؤلف وصفحات التاريخ) عرض المقالات اللاصقة في الجزء العلوي ، فقط بالترتيب الافتراضي.

الكثير لتفعله مع WordPressتحسين محركات البحثالأصدقاء ، نأمل في حل هذه المشاكل.

كيف تجعل صفحة WordPress / الفئة / العلامة / المؤلف تعرض المقالات اللاصقة؟

في الواقع ، نحتاج فقط إلى الرجوع إلى كود الصفحة الرئيسية لـ wp-include / query.php وتعديله قليلاً ، بحيث يكون الجزء العلوي من صفحة الأرشيف (مثل صفحة الفئة وصفحة علامة التبويب وصفحة المؤلف وصفحة التاريخ ) يمكن أيضًا عرض المقالة العليا.

ووردبريس كود المادة اللاصقة

يرجى وضع الكود التالي في ملف function.php تحت الموضوع الحالي الخاص بك ▼

//让WordPress分类、标签、存档和作者页显示置顶文章
add_filter('the_posts', 'putStickyOnTop' );
function putStickyOnTop( $posts ) {
if ( is_series() || is_home() || !is_main_query() || !is_archive())
return $posts;

global $wp_query;

$sticky_posts = get_option('sticky_posts');

if ( $wp_query->query_vars['paged'] <= 1 && is_array($sticky_posts) && !empty($sticky_posts) && !get_query_var('ignore_sticky_posts') ) { $stickies1 = get_posts( array( 'post__in' => $sticky_posts ) );
foreach ( $stickies1 as $sticky_post1 ) {
// 判断当前是否分类页 
if($wp_query->is_category == 1 && !has_category($wp_query->query_vars['cat'], $sticky_post1->ID)) {
// 移除不是本分类的文章
$offset1 = array_search($sticky_post1->ID, $sticky_posts);
unset( $sticky_posts[$offset1] );
}
if($wp_query->is_tag == 1 && has_tag($wp_query->query_vars['tag'], $sticky_post1->ID)) {
// 移除不是本标签的文章
$offset1 = array_search($sticky_post1->ID, $sticky_posts);
unset( $sticky_posts[$offset1] );
}
if($wp_query->is_year == 1 && date_i18n('Y', strtotime($sticky_post1->post_date))!=$wp_query->query['m']) {
// 移除不是本年份的文章
$offset1 = array_search($sticky_post1->ID, $sticky_posts);
unset( $sticky_posts[$offset1] );
}
if($wp_query->is_month == 1 && date_i18n('Ym', strtotime($sticky_post1->post_date))!=$wp_query->query['m']) {
// 移除不是本月份的文章
$offset1 = array_search($sticky_post1->ID, $sticky_posts);
unset( $sticky_posts[$offset1] );
}
if($wp_query->is_day == 1 && date_i18n('Ymd', strtotime($sticky_post1->post_date))!=$wp_query->query['m']) {
// 移除不是本日期的文章
$offset1 = array_search($sticky_post1->ID, $sticky_posts);
unset( $sticky_posts[$offset1] );
}
if($wp_query->is_author == 1 && $sticky_post1->post_author != $wp_query->query_vars['author']) {
// 移除不是本作者的文章
$offset1 = array_search($sticky_post1->ID, $sticky_posts);
unset( $sticky_posts[$offset1] );
}
}

$num_posts = count($posts);
$sticky_offset = 0;
// Loop over posts and relocate stickies to the front.
for ( $i = 0; $i < $num_posts; $i++ ) {
if ( in_array($posts[$i]->ID, $sticky_posts) ) {
$sticky_post = $posts[$i];
// Remove sticky from current position
array_splice($posts, $i, 1);
// Move to front, after other stickies
array_splice($posts, $sticky_offset, 0, array($sticky_post));
// Increment the sticky offset. The next sticky will be placed at this offset.
$sticky_offset++;
// Remove post from sticky posts array
$offset = array_search($sticky_post->ID, $sticky_posts);
unset( $sticky_posts[$offset] );
}
}

// If any posts have been excluded specifically, Ignore those that are sticky.
if ( !empty($sticky_posts) && !empty($wp_query->query_vars['post__not_in'] ) )
$sticky_posts = array_diff($sticky_posts, $wp_query->query_vars['post__not_in']);

// Fetch sticky posts that weren't in the query results
if ( !empty($sticky_posts) ) {
$stickies = get_posts( array(
'post__in' => $sticky_posts,
'post_type' => $wp_query->query_vars['post_type'],
'post_status' => 'publish',
'nopaging' => true
) );

foreach ( $stickies as $sticky_post ) {
array_splice( $posts, $sticky_offset, 0, array( $sticky_post ) );
$sticky_offset++;
}
}
}

return $posts;
}

//置顶文章添加样式
add_filter('post_class',  'addStickyClass' ,10,3 );
function addStickyClass( $classes, $class, $post_id ){
  if( is_sticky() && is_category() && !isset( $classes['sticky'] ) ){
    $classes[] = 'sticky';
  }
  
  return $classes;
} 

تعليمات استخدام كود المادة اللاصقة

1) إذا كنت تريد أن تعرض صفحة الأرشيف جميع المقالات الرئيسية ، فيرجى حذف 11-43 سطرًا من التعليمات البرمجية ؛

2) إذا كنت لا تريد عرض المقالة العليا في صفحة الفئة ، فيرجى إضافة ▼ في السطر 3

if(

تعديل إلى ▼

// abc是分类的名称
if ( is_category( 'abc' ) || 

3) إذا كنت لا تريد عرض المقالة العليا في صفحة علامة التبويب ، يرجى ▼ في السطر 3

if(

غير إلى:

// abc是标签的名称
if ( is_tag( 'abc' ) || 

4) إذا كنت لا تريد أن تعرض صفحة المؤلف المقال الرئيسي ، يرجى ▼ في السطر 3

if(

تعديل إلى ▼

// abc是作者的昵称
if ( is_author( 'abc' ) || 

5) إذا كنت لا تريد صفحة فئة مخصصة لعرض المقالة العليا ، فضع ملف

if(

قم بتغييره إلى:

// series是自定义分类、abc是自定义分类名称
if ( is_series( 'abc' ) ||

الكود أعلاه صالح فقط للحلقة الرئيسية ، إذا كنت تستخدم WP_Query أو query_posts للحصول على قائمة بالمنشورات على صفحة الأرشيف ، وتريد عرض المنشورات المثبتة أعلى تلك القوائم.

يمكنك حذف الكود التالي في السطر 3 (قد يتسبب في اختلاف عدد المقالات المعروضة عما قمت بتعيينه) ▼

|| !is_main_query() 

أضف النمط إلى المقال الأعلى

إذا كنت تريد إضافة أنماط إلى المنشور اللاصق ، فأضف الكود التالي إلى function.php وأضف فئة باسم sticky إلى المنشور اللاصق.

في سمات WordPress العامة ، سيكون هناك رمز CSS لأسلوب المقالة الأعلى ، ويمكنك أيضًا إضافة ▼ مخصص

//置顶文章添加样式
add_filter('post_class',  'addStickyClass' ,10,3 );
function addStickyClass( $classes, $class, $post_id ){
  if( is_sticky() && is_category() && !isset( $classes['sticky'] ) ){
    $classes[] = 'sticky';
  }
  
  return $classes;
} 

هناك طريقة أخرى لجعل صفحات أرشيف فئة WordPress تعرض مقالات WordPress في الأعلى ▼

مدونة Hope Chen Weiliang ( https://www.chenweiliang.com/ ) شارك "كيف تجعل صفحة WordPress / الفئة / العلامة / المؤلف تعرض المقالات اللاصقة؟ ، لمساعدتك.

مرحبا بكم في مشاركة رابط هذه المقالة:https://www.chenweiliang.com/cwl-878.html

مرحبًا بك في قناة Telegram الخاصة بمدونة Chen Weiliang للحصول على آخر التحديثات!

🔔 كن أول من يحصل على "دليل استخدام أداة الذكاء الاصطناعي لتسويق محتوى ChatGPT" في الدليل العلوي للقناة! 🌟
📚 يحتوي هذا الدليل على قيمة كبيرة، 🌟هذه فرصة نادرة، لا تفوتها! ⏰⌛💨
شارك و اعجبك اذا اردت
مشاركتك وإعجاباتك هي دافعنا المستمر!

 

发表 评论

لن يتم نشر عنوان بريدك الإلكتروني. 必填 项 已 用 * 标注

انتقل إلى أعلى