Com fer que la pàgina de categoria/etiqueta/autor de WordPress mostri articles enganxosos?

WordPressHi ha una funció d'adhesió d'articles integrada, però per defecte només s'admet la pàgina superior per mostrar articles enganxosos.

Altres pàgines d'arxiu (com ara pàgines de categories, pàgines d'etiquetes, pàgines d'autor i pàgines de dates) no poden mostrar articles enganxosos a la part superior, només en l'ordre predeterminat.

molt a veure amb WordPressSEOamics, esperem resoldre aquests problemes.

Com fer que la pàgina de categoria/etiqueta/autor de WordPress mostri articles enganxosos?

De fet, només hem de fer referència al codi de la pàgina d'inici de wp-includes/query.php i modificar-lo lleugerament, de manera que la part superior de la pàgina d'arxiu (com ara pàgina de categoria, pàgina de pestanya, pàgina d'autor i pàgina de data). ) també pot mostrar l'article superior.

Codi d'article adhesiu de WordPress

Si us plau, poseu el codi següent al fitxer functions.php sota el vostre tema actual ▼

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

Instruccions per utilitzar el codi de l'article enganxós

1) Si voleu que la pàgina d'arxiu mostri tots els articles principals, suprimiu les 11-43 línies de codi;

2) Si no voleu mostrar l'article principal a la pàgina de la categoria, afegiu ▼ a la línia 3

if(

Modifica a ▼

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

3) Si no voleu mostrar l'article superior a la pestanya, ▼ a la línia 3

if(

canviar a:

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

4) Si no voleu que la pàgina de l'autor mostri l'article principal, si us plau ▼ a la línia 3

if(

Modifica a ▼

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

5) Si no voleu que una pàgina de categoria personalitzada mostri l'article principal, poseu el

if(

Canvia-ho a:

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

El codi anterior només és vàlid per al bucle principal, si utilitzeu WP_Query o query_posts per obtenir una llista de publicacions a la pàgina d'arxiu i voleu mostrar la publicació fixada a la part superior d'aquestes llistes.

Podeu suprimir el codi següent a la línia 3 (pot provocar que el nombre d'articles que es mostren sigui diferent del que heu definit) ▼

|| !is_main_query() 

Afegeix estil a l'article superior

Si voleu afegir estils a la publicació enganxosa, afegiu el codi següent a functions.php i afegiu una classe anomenada enganxosa a la publicació enganxosa.

En els temes generals de WordPress, hi haurà codi CSS per a l'estil de l'article principal, també podeu afegir ▼ personalitzat

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

Hi ha una altra manera de fer que les pàgines d'arxiu de categories de WordPress mostrin articles de WordPress a la part superior▼

Bloc d'Hope Chen Weiliang ( https://www.chenweiliang.com/ ) compartit "Com fer que la pàgina d'autor/categoria/etiqueta/autor de WordPress mostri articles enganxosos? , per ajudar-te.

Benvingut a compartir l'enllaç d'aquest article:https://www.chenweiliang.com/cwl-878.html

Benvingut al canal de Telegram del bloc de Chen Weiliang per rebre les últimes actualitzacions!

🔔 Sigues el primer a obtenir la valuosa "Guia d'ús de l'eina de màrqueting de continguts de ChatGPT" al directori principal del canal! 🌟
📚 Aquesta guia té un gran valor, 🌟Aquesta és una oportunitat rara, no la perdis! ⏰⌛💨
Comparteix i m'agrada si t'agrada!
Els vostres likes i compartir són la nostra motivació contínua!

 

发表 评论

La vostra adreça de correu electrònic no es publicarà. S'utilitzen els camps obligatoris * 标注

desplaçar-se a dalt