چگونه صفحه دسته/برچسب/نویسنده وردپرس را مقالات چسبناک نشان دهیم؟

وردپرسیک عملکرد چسباندن مقاله داخلی وجود دارد، اما به طور پیش فرض فقط صفحه بالا برای نمایش مقالات چسبنده پشتیبانی می شود.

سایر صفحات آرشیو (مانند صفحات دسته، صفحات برچسب، صفحات نویسنده و صفحات تاریخ) نمی توانند مقالات چسبنده را در بالا نمایش دهند، فقط به ترتیب پیش فرض.

کارهای زیادی با وردپرس انجام می شودSEOدوستان امیدوارم این مشکلات حل بشه

چگونه صفحه دسته/برچسب/نویسنده وردپرس را مقالات چسبناک نشان دهیم؟

در واقع، فقط باید به کد صفحه اصلی wp-includes/query.php مراجعه کرده و کمی آن را اصلاح کنیم، به طوری که بالای صفحه آرشیو (مانند صفحه دسته، صفحه برگه، صفحه نویسنده و صفحه تاریخ) ) همچنین می تواند مقاله برتر را نمایش دهد.

کد مقاله چسبنده وردپرس

لطفا کد زیر را در فایل functions.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() 

به مقاله برتر سبک اضافه کنید

اگر می خواهید به پست چسبنده استایل اضافه کنید، کد زیر را به functions.php اضافه کنید و یک کلاس به نام sticky به پست چسبنده اضافه کنید.

تم های عمومی وردپرس دارای کد 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;
} 

راه دیگری برای اینکه صفحات آرشیو دسته بندی وردپرس، مقالات وردپرس را در بالای▼ نشان دهند وجود دارد

وبلاگ امید چن ویلیانگ ( https://www.chenweiliang.com/ ) shared "چگونه صفحه دسته/برچسب/نویسنده وردپرس را مقالات چسبناک نشان دهیم؟ ، برای کمک به شما

به اشتراک گذاری لینک این مقاله خوش آمدید:https://www.chenweiliang.com/cwl-878.html

به کانال تلگرام وبلاگ چن ویلیانگ خوش آمدید تا از آخرین به روز رسانی ها مطلع شوید!

🔔 اولین نفری باشید که "راهنمای استفاده از ابزار هوش مصنوعی بازاریابی محتوایی ChatGPT" را در فهرست بالای کانال دریافت می کنید! 🌟
📚 این راهنما حاوی ارزش بسیار زیادی است، 🌟این یک فرصت نادر است، آن را از دست ندهید! ⏰⌛💨
اگر دوست داشتید به اشتراک بگذارید و لایک کنید
اشتراک گذاری و لایک های شما انگیزه مستمر ما هستند!

 

发表 评论

آدرس ایمیل شما منتشر نخواهد شد. از زمینه های مورد نیاز استفاده می شود * 标注

به بالا بروید