Straipsnių katalogas
WordPressYra integruota funkcija prisegti straipsnius viršuje, tačiau pagal numatytuosius nustatymus ji palaiko tik prisegtų straipsnių rodymą pagrindiniame puslapyje.
Kituose archyvo puslapiuose (pvz., kategorijų puslapiuose, žymų puslapiuose, autoriaus puslapiuose ir datos puslapiuose) negalima rodyti prisegtų straipsnių viršuje ir jie gali būti rodomi tik numatyta tvarka.
Daug nuveikta naudojant WordPressSEOvisi draugai tikisi išspręsti šias problemas.
Tiesą sakant, mums tereikia kreiptis į wp-includes/query.php pagrindinio puslapio kodą ir atlikti nedidelius pakeitimus, kad prisegti straipsniai būtų rodomi archyvo puslapių viršuje (pvz., kategorijų puslapiai, žymų puslapiai, autoriaus puslapiai ir datos puslapiai). .
„WordPress“ prisegtas straipsnio kodas
Įdėkite šį kodą į functions.php failą prie dabartinės temos ▼
//让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; }
Prisegto straipsnio kodo naudojimo instrukcijos
1) Jei norite, kad archyvo puslapyje būtų rodomi visi prisegti straipsniai, ištrinkite 11-43 kodo eilutes;
2) Jei nenorite, kad kategorijos puslapyje būtų rodomi prisegti straipsniai, pakeiskite ▼ 3 eilutėje
if(
Keisti į ▼
// abc是分类的名称 if ( is_category( 'abc' ) ||
3) Jei nenorite, kad prisegtas straipsnis būtų rodomas skirtuko puslapyje, spustelėkite ▼ 3 eilutėje
if(
pakeisti į:
// abc是标签的名称
if ( is_tag( 'abc' ) ||
4) Jei nenorite, kad autoriaus puslapyje būtų rodomi prisegti straipsniai, spustelėkite ▼ 3 eilutėje
if(
Keisti į ▼
// abc是作者的昵称
if ( is_author( 'abc' ) ||
5) Jei nenorite, kad tinkintos kategorijos puslapyje būtų rodomi prisegti straipsniai, pakeiskite
if(
Pakeisti į:
// series是自定义分类、abc是自定义分类名称 if ( is_series( 'abc' ) ||
Aukščiau pateiktas kodas veikia tik pagrindinėje kilpoje, jei naudojate WP_Query arba query_posts, kad gautumėte įrašų sąrašą archyvo puslapiuose ir norite rodyti prisegtus įrašus šių sąrašų viršuje.
Galite ištrinti šį kodą 3 eilutėje (dėl to rodomų straipsnių skaičius gali skirtis nuo jūsų nustatyto) ▼
|| !is_main_query()
Pridėkite stilių prie prisegtų straipsnių
Jei norite pridėti stilių į priklijuotą straipsnį, pridėkite šį kodą į functions.php ir pridėkite klasę pavadinimu lipnus straipsnis.
Paprastai „WordPress“ temos turi CSS kodą, skirtą prisegtų straipsnių stiliams. Taip pat galite patys pridėti tinkinimų ▼
//置顶文章添加样式 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; }
- Prisegto straipsnio stiliaus efektas kategorijos puslapyje,Chen WeiliangTinklaraščio straipsnių kategorijos:Kinijos mobiliojo telefono numeris
- (Temos keitimo galiojimo laikas baigėsi)
Yra dar vienas būdas priversti „WordPress“ kategorijos archyvo puslapį rodyti „WordPress“ straipsnius viršuje▼
Hope Chen Weiliang tinklaraštis ( https://www.chenweiliang.com/ ) pasidalino „Kaip padaryti, kad WordPress kategorijos/žymos/autorio puslapyje būtų rodomi prisegti straipsniai? 》, tau naudinga.
Kviečiame pasidalinti šio straipsnio nuoroda:https://www.chenweiliang.com/cwl-878.html
Sveiki atvykę į Chen Weiliang tinklaraščio Telegram kanalą, kad gautumėte naujausius atnaujinimus!
📚 Šis vadovas turi didžiulę vertę, 🌟Tai reta galimybė, nepraleiskite jos! ⏰⌛💨
Dalinkitės ir like jei patiko!
Jūsų dalijimasis ir paspaudimai „Patinka“ yra mūsų nuolatinė motyvacija!