Sida loo sameeyo qaybta WordPress/tag/bogga qoraaga tuso maqaallo dhegdheg leh?

WordPressWaxaa jira maqaal ku dhex jira oo ku dheggan, laakiin asal ahaan bogga sare oo keliya ayaa la taageeraa si uu u muujiyo maqaallada dhegdhegaysan.

Bogagga kale ee kaydka (sida boggaga qaybta, boggaga tag, boggaga qoraaga, iyo bogga taariikhda) kama soo bandhigi karaan maqaallo dhegdheg ah xagga sare, kaliya siday u kala horreeyaan.

wax badan oo lagu sameeyo WordPressSEOsxb, rajee inaad xalliso mashaakilkan.

Sida loo sameeyo qaybta WordPress/tag/bogga qoraaga tuso maqaallo dhegdheg leh?

Dhab ahaantii, waxaan kaliya u baahanahay inaan tixraacno koodhka bogga guriga ee wp-includes/query.php oo aan wax yar ka beddelno, si sare ee bogga kaydka (sida bogga qaybta, bogga tab, bogga qoraaga iyo bogga taariikhda ) sidoo kale waxay soo bandhigi kartaa maqaalka ugu sarreeya.

Koodhka maqaalka dhegdheg ee WordPress

Fadlan geli koodka soo socda faylka functional.php mawduucaaga hadda ▼

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

Tilmaamaha isticmaalka koodka maqaalka dhejiska ah

1) Haddii aad rabto in bogga kaydku soo bandhigo dhammaan maqaallada ugu sarreeya, fadlan tirtir 11-43 khadadka koodka;

2) Haddii aadan rabin inaad ku muujiso maqaalka ugu sarreeya bogga qaybta, fadlan ku dar ▼ safka 3

if(

U beddelo ▼

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

3) Haddii aadan rabin inaad ku muujiso maqaalka ugu sarreeya bogga tab, fadlan ▼ safka 3aad

if(

u beddel:

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

4) Haddii aadan rabin in bogga qoraagu soo bandhigo maqaalka ugu sarreeya, fadlan ▼ safka 3aad

if(

U beddelo ▼

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

5) Haddii aadan rabin bogga qaybta gaarka ah si aad u muujiso maqaalka ugu sarreeya, ku dheji

if(

U beddel:

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

Koodhka sare waxa uu kaliya u shaqaynayaa loop-ka wayn, hadii aad isticmaalayso WP_Query ama query_posts si aad u hesho liis qoraalo ah oo ku yaal bogga kaydka, oo aad rabto in aad muujiso boostada ku dheggan liisaska sare.

Waxaad ku tirtiri kartaa koodka soo socda ee safka 3 (waxaa laga yaabaa inay keento tirada maqaallada la soo bandhigay inay ka duwan yihiin waxaad dejisay) ▼

|| !is_main_query() 

Kudar qaabka maqaalka sare

Haddii aad rabto in aad qaabab ku darto boostada dhegdhegaysan, ku dar koodkan soo socda functional.php oo ku dar fasal magac leh oo dhegdheg leh.

Mawduucyada guud ee WordPress waxay yeelan doonaan koodka CSS ee qaabka maqaalka ugu sarreeya, waxaad sidoo kale ku dari kartaa caadada ▼

//置顶文章添加样式
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;
} 

Waxaa jira hab kale oo lagu sameeyo boggaga kaydka qaybta WordPress inay muujiyaan maqaallada WordPress ee ugu sarreeya▼

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) la wadaagay "Sidee loo sameeyaa qaybta WordPress/tag/bogga qoraaga oo muujiya maqaallo dhegdheg leh? , si ay kuu caawiyaan.

Ku soo dhawoow inaad wadaagto xiriirka maqaalkan:https://www.chenweiliang.com/cwl-878.html

Ku soo dhawoow kanaalka Telegramka ee Chen Weiliang's blog si aad u hesho wararkii ugu dambeeyay!

🔔 Noqo kuwa ugu horreeya ee hela "ChatGPT Content Suuqgeynta AI Hagaha Isticmaalka Qalabka" ee tusaha sare ee kanaalka! 🌟
📚 Hagahan waxa uu ka kooban yahay qiimo aad u weyn, 🌟Tani waa fursad naadir ah, ha seegin! ⏰⌛💨
Share iyo like saar hadaad jeceshahay!
Wadaagistaada iyo jeceylkaaga ayaa ah dhiirigelintayada joogtada ah!

 

评论

Cinwaanka emailkaaga lama daabici doono. 项 已 用 * Calaamadda

kor ugu rog