Hvernig á að láta WordPress flokka/merki/höfundarsíðu sýna klístraðar greinar?

WordPressÞað er innbyggð aðgerð til að festa greinar, en sjálfgefið er aðeins efsta síðan studd til að birta klístraðar greinar.

Aðrar skjalasafnssíður (eins og flokkasíður, merkjasíður, höfundarsíður og dagsetningarsíður) geta ekki birt klístraðar greinar efst, aðeins í sjálfgefna röð.

mikið að gera með WordPressSEOvinir, vonumst til að leysa þessi vandamál.

Hvernig á að láta WordPress flokka/merki/höfundarsíðu sýna klístraðar greinar?

Reyndar þurfum við aðeins að vísa í kóðann á heimasíðu wp-includes/query.php og breyta honum örlítið, þannig að efst á skjalasíðunni (eins og flokkasíða, flipasíðu, höfundarsíðu og dagsetningarsíðu ) getur einnig birt efstu greinina.

WordPress klístur greinarkóði

Vinsamlegast settu eftirfarandi kóða í functions.php skrána undir núverandi þema ▼

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

Leiðbeiningar um notkun kóðans á klístruðu hlutnum

1) Ef þú vilt að skjalasafnssíðan sýni allar efstu greinarnar, vinsamlegast eyddu 11-43 línunum af kóða;

2) Ef þú vilt ekki birta efstu greinina á flokkasíðunni skaltu bæta við ▼ í línu 3

if(

Breyta í ▼

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

3) Ef þú vilt ekki birta efstu greinina á flipasíðunni, vinsamlegast ▼ í línu 3

if(

breyta í:

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

4) Ef þú vilt ekki að höfundasíðan birti efstu greinina, vinsamlegast ▼ í línu 3

if(

Breyta í ▼

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

5) Ef þú vilt ekki að sérsniðin flokkasíða birti efstu greinina skaltu setja

if(

Breyttu því í:

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

Ofangreindur kóði gildir aðeins fyrir aðallykkjuna, ef þú ert að nota WP_Query eða query_posts til að fá lista yfir færslur á skjalasíðunni og vilt birta festu færsluna ofan á þeim lista.

Þú getur eytt eftirfarandi kóða í línu 3 (gæti valdið því að fjöldi birtra greina sé frábrugðinn því sem þú stillir) ▼

|| !is_main_query() 

Bættu stíl við efstu greinina

Ef þú vilt bæta stílum við Sticky færsluna skaltu bæta eftirfarandi kóða við functions.php og bæta flokki sem heitir Sticky við Sticky færsluna.

Almennt WordPress þemu, það verður CSS kóða fyrir efstu greinarstílinn, þú getur líka bætt við sérsniðnum ▼

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

Það er önnur leið til að láta skjalasafnasíður WordPress flokka sýna WordPress greinar efst▼

Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) deildi „Hvernig á að láta WordPress flokk/merki/höfundarsíðu sýna klístraðar greinar? , til að hjálpa þér.

Velkomið að deila tengli þessarar greinar:https://www.chenweiliang.com/cwl-878.html

Velkomin á Telegram rásina á bloggi Chen Weiliang til að fá nýjustu uppfærslurnar!

🔔 Vertu fyrstur til að fá dýrmæta „ChatGPT Content Marketing AI Notkunarleiðbeiningar“ í efstu möppu rásarinnar! 🌟
📚 Þessi handbók inniheldur mikið gildi, 🌟Þetta er sjaldgæft tækifæri, ekki missa af því! ⏰⌛💨
Deildu og likeðu ef þú vilt!
Deiling þín og líkar við eru stöðug hvatning okkar!

 

发表 评论

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru notaðir * Merkimiði

flettu efst