WordPress toifasi/yorlig'i/muallif sahifasida yopishqoq maqolalarni qanday ko'rsatish mumkin?

WordPressO'rnatilgan maqolani yopishtirish funktsiyasi mavjud, ammo sukut bo'yicha yopishqoq maqolalarni ko'rsatish uchun faqat yuqori sahifa qo'llab-quvvatlanadi.

Boshqa arxiv sahifalari (masalan, toifalar sahifalari, teg sahifalari, muallif sahifalari va sana sahifalari) yopishqoq maqolalarni yuqori qismida ko'rsata olmaydi, faqat standart tartibda.

WordPress bilan juda ko'p narsaSEOdo'stlar, bu muammolarni hal qilishga umid qilaman.

WordPress toifasi/yorlig'i/muallif sahifasida yopishqoq maqolalarni qanday ko'rsatish mumkin?

Aslida, biz faqat wp-includes/query.php bosh sahifasining kodiga murojaat qilishimiz va uni biroz o'zgartirishimiz kerak, shunda arxiv sahifasining yuqori qismi (masalan, toifalar sahifasi, yorliq sahifasi, muallif sahifasi va sana sahifasi kabi) ) yuqori maqolani ham ko'rsatishi mumkin.

WordPress yopishqoq maqola kodi

Iltimos, joriy mavzuingiz ostidagi functions.php fayliga quyidagi kodni kiriting ▼

//让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;
} 

Yopishqoq maqola kodidan foydalanish bo'yicha ko'rsatmalar

1) Agar arxiv sahifasida barcha eng yaxshi maqolalar koʻrsatilishini istasangiz, 11-43 qatorli kodlarni oʻchirib tashlang;

2) Agar siz toifa sahifasida eng yaxshi maqolani ko'rsatishni xohlamasangiz, 3-qatorga ▼ qo'shing.

if(

▼ ga o'zgartiring

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

3) Agar yuqori maqolani yorliq sahifasida ko'rsatishni xohlamasangiz, iltimos, 3-qatorda ▼ belgisini qo'ying.

if(

ga o'zgartirish:

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

4) Agar muallif sahifasida yuqori maqola koʻrsatilishini istamasangiz, 3-qatorda ▼ belgisini qoʻying

if(

▼ ga o'zgartiring

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

5) Agar siz maxsus toifadagi sahifaning yuqori maqolani ko'rsatishini xohlamasangiz, ni qo'ying

if(

Uni quyidagicha o'zgartiring:

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

Yuqoridagi kod faqat asosiy tsikl uchun amal qiladi, agar siz arxiv sahifasida postlar roʻyxatini olish uchun WP_Query yoki query_posts dan foydalanayotgan boʻlsangiz va oʻsha roʻyxatlar tepasida mahkamlangan postni koʻrsatishni istasangiz.

Siz 3-qatordagi quyidagi kodni oʻchirishingiz mumkin (koʻrsatilgan maqolalar soni siz oʻrnatganingizdan farq qilishi mumkin) ▼

|| !is_main_query() 

Yuqori maqolaga uslub qo'shing

Agar siz yopishqoq postga uslublar qo'shmoqchi bo'lsangiz, functions.php saytiga quyidagi kodni qo'shing va yopishqoq postga sticky nomli sinfni qo'shing.

Umumiy WordPress mavzularida eng yaxshi maqola uslubi uchun CSS kodi bo'ladi, siz shuningdek maxsus ▼ qo'shishingiz mumkin

//置顶文章添加样式
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 turkumidagi arxiv sahifalarida WordPress maqolalarini yuqori qismida koʻrsatishning yana bir usuli bor▼

Umid qilamanki, Chen Veyliang blogi ( https://www.chenweiliang.com/ ) "Qanday qilib WordPress toifasi/teg/muallif sahifasida yopishqoq maqolalar ko'rsatilishi mumkin? , sizga yordam berish uchun.

Ushbu maqolaning havolasini baham ko'rish uchun xush kelibsiz:https://www.chenweiliang.com/cwl-878.html

Eng so'nggi yangiliklardan xabardor bo'lish uchun Chen Veyliang blogining Telegram kanaliga xush kelibsiz!

🔔 Birinchi bo'lib kanalning yuqori katalogida qimmatli "ChatGPT Content Marketing AI vositasidan foydalanish bo'yicha qo'llanma"ni qo'lga kiriting! 🌟
📚 Ushbu qo'llanmada katta ahamiyatga ega, 🌟Bu kamdan-kam imkoniyat, uni qo'ldan boy bermang! ⏰⌛💨
Baham ko'ring va yoqsa like!
Sizning baham ko'rish va yoqtirishlaringiz bizning doimiy motivatsiyamizdir!

 

发表 评论

Sizning elektron pochta manzilingiz e'lon qilinmaydi. 必填 项 已 用 * Yorliq

tepaga aylantiring