Hoe om WordPress-kategorie-/merker-/skrywerbladsy taai artikels te laat vertoon?

WordPressDaar is 'n ingeboude artikelplakfunksie, maar by verstek word slegs die boonste bladsy ondersteun om taai artikels te vertoon.

Ander argiefbladsye (soos kategoriebladsye, merkerbladsye, skrywersbladsye en datumbladsye) kan nie taai artikels boaan vertoon nie, net in die verstekvolgorde.

baie met WordPress te doenSEOvriende, hoop om hierdie probleme op te los.

Hoe om WordPress-kategorie-/merker-/skrywerbladsy taai artikels te laat vertoon?

Trouens, ons hoef net na die kode van die tuisblad van wp-includes/query.php te verwys en dit effens te verander, sodat die bokant van die argiefbladsy (soos kategoriebladsy, oortjiebladsy, skrywerbladsy en datumbladsy) ) kan ook die boonste artikel vertoon.

WordPress taai artikelkode

Plaas asseblief die volgende kode in die functions.php-lêer onder jou huidige tema ▼

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

Instruksies vir die gebruik van die kode van die taai artikel

1) As jy wil hê dat die argiefbladsy al die topartikels moet vertoon, verwyder asseblief die 11-43 reëls kode;

2) As jy nie die boonste artikel op die kategoriebladsy wil vertoon nie, voeg asseblief ▼ in reël 3 by

if(

Verander na ▼

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

3) As jy nie die boonste artikel op die bladbladsy wil vertoon nie, ▼ asseblief in reël 3

if(

verander in:

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

4) As jy nie wil hê dat die skrywersbladsy die boonste artikel moet vertoon nie, ▼ asseblief in reël 3

if(

Verander na ▼

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

5) As jy nie wil hê dat 'n pasgemaakte kategoriebladsy die boonste artikel moet vertoon nie, plaas die

if(

Verander dit na:

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

Bogenoemde kode is slegs geldig vir die hooflus, as jy WP_Query of query_posts gebruik om 'n lys plasings op die argiefbladsy te kry, en die vasgespelde plasings bo-aan daardie lyste wil vertoon.

Jy kan die volgende kode in reël 3 uitvee (kan veroorsaak dat die aantal artikels wat vertoon word verskil van wat jy gestel het) ▼

|| !is_main_query() 

Voeg styl by die boonste artikel

As jy style by die taai plasing wil voeg, voeg die volgende kode by functions.php en voeg 'n klas genaamd sticky by die taai plasing.

In die algemeen WordPress-temas, sal daar CSS-kode vir die top artikel styl wees, jy kan ook persoonlike ▼ byvoeg

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

Daar is nog 'n manier om WordPress-kategorie-argiefbladsye WordPress-artikels aan die bokant te laat vertoon▼

Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "Hoe om WordPress-kategorie-/merker-/skrywerbladsy taai artikels te laat wys? , om jou te help.

Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-878.html

Welkom by die Telegram-kanaal van Chen Weiliang se blog om die nuutste opdaterings te kry!

🔔 Wees die eerste om die waardevolle "ChatGPT Content Marketing AI Tool Usage Guide" in die kanaal se topgids te kry! 🌟
📚 Hierdie gids bevat groot waarde, 🌟Dit is 'n seldsame geleentheid, moet dit nie misloop nie! ⏰⌛💨
Share en like as jy wil!
Jou deel en laaiks is ons voortdurende motivering!

 

发表 评论

U e-posadres sal nie gepubliseer word nie. Vereiste velde word gebruik * Etiket

blaai na bo