Directorio de artigos
WordPressHai unha función de adherencia de artigos incorporada, pero por defecto só se admite a páxina superior para mostrar artigos adhesivos.
Outras páxinas de arquivo (como páxinas de categorías, páxinas de etiquetas, páxinas de autor e páxinas de datas) non poden mostrar artigos adhesivos na parte superior, só na orde predeterminada.
moito que ver con WordPressSEOamigos, espero resolver estes problemas.
De feito, só necesitamos referirnos ao código da páxina de inicio de wp-includes/query.php e modificalo lixeiramente, para que a parte superior da páxina do arquivo (como páxina de categoría, páxina de pestanas, páxina de autor e páxina de data). ) tamén pode mostrar o artigo principal.
Código de artigo adhesivo de WordPress
Pon o seguinte código no ficheiro functions.php baixo o teu 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; }
Instrucións para usar o código do artigo pegajoso
1) Se queres que a páxina do arquivo mostre todos os artigos principais, elimina as 11-43 liñas de código;
2) Se non queres mostrar o artigo principal na páxina da categoría, engade ▼ na liña 3
if(
Modificar a ▼
// abc是分类的名称 if ( is_category( 'abc' ) ||
3) Se non queres mostrar o artigo superior na páxina do separador, ▼ na liña 3
if(
transformarse en:
// abc是标签的名称
if ( is_tag( 'abc' ) ||
4) Se non queres que a páxina do autor mostre o artigo principal, ▼ na liña 3
if(
Modificar a ▼
// abc是作者的昵称
if ( is_author( 'abc' ) ||
5) Se non queres que unha páxina de categoría personalizada amose o artigo principal, pon o
if(
Cambialo por:
// series是自定义分类、abc是自定义分类名称 if ( is_series( 'abc' ) ||
O código anterior só é válido para o bucle principal, se estás usando WP_Query ou query_posts para obter unha lista de publicacións na páxina do arquivo e queres mostrar as publicacións fixadas enriba desas listas.
Podes eliminar o seguinte código na liña 3 (pode provocar que o número de artigos mostrados sexa diferente do que definiches) ▼
|| !is_main_query()
Engade estilo ao artigo principal
Se queres engadir estilos á publicación adhesiva, engade o seguinte código a functions.php e engade unha clase chamada sticky á publicación adhesiva.
Os temas xerais de WordPress terán o código CSS do estilo do artigo superior, tamén podes engadir ▼ personalizado
//置顶文章添加样式 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; }
- O efecto de estilo do artigo superior da páxina de categoría,Chen WeiliangCategorías de artigos do blog:Número de móbil chinés
- (Cambio de tema caducou)
Hai outra forma de facer que as páxinas de arquivo de categorías de WordPress mostren artigos de WordPress na parte superior▼
Blog de Hope Chen Weiliang ( https://www.chenweiliang.com/ ) compartiu "Como facer que a páxina de categoría/etiqueta/autor de WordPress mostre artigos adhesivos? , para axudarche.
Benvido a compartir a ligazón deste artigo:https://www.chenweiliang.com/cwl-878.html
Benvido á canle de Telegram do blog de Chen Weiliang para recibir as últimas actualizacións.
📚 Esta guía contén un gran valor, 🌟Esta é unha oportunidade rara, non a perdas! ⏰⌛💨
Comparte e da like se che gusta!
O teu compartir e gústame son a nosa motivación continua!