Giunsa paghimo ang kategorya sa WordPress / tag / tagsulat nga panid nga nagpakita sa mga sticky nga artikulo?

WordPressAdunay usa ka built-in nga function sa pagdikit sa artikulo, apan sa default ang taas nga panid lamang ang gisuportahan aron ipakita ang mga sticky nga artikulo.

Ang ubang mga panid sa archive (sama sa mga panid sa kategorya, mga panid sa tag, mga panid sa tagsulat, ug mga panid sa petsa) dili makapakita sa mga sticky nga artikulo sa ibabaw, sa default nga han-ay lamang.

daghang buhaton sa WordPressSEOmga higala, hinaut nga masulbad kini nga mga problema.

Giunsa paghimo ang kategorya sa WordPress / tag / tagsulat nga panid nga nagpakita sa mga sticky nga artikulo?

Sa tinuud, kinahanglan ra naton nga i-refer ang code sa home page sa wp-includes/query.php ug usbon kini gamay, aron ang tumoy sa panid sa archive (sama sa panid sa kategorya, panid sa tab, panid sa awtor ug panid sa petsa ) mahimo usab nga ipakita ang taas nga artikulo.

WordPress sticky nga code sa artikulo

Palihug ibutang ang mosunod nga code sa functions.php file ubos sa imong tema karon ▼

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

Mga panudlo alang sa paggamit sa code sa sticky nga artikulo

1) Kung gusto nimo nga ipakita sa panid sa archive ang tanan nga nanguna nga mga artikulo, palihug kuhaa ang 11-43 nga linya sa code;

2) Kung dili nimo gusto nga ipakita ang taas nga artikulo sa panid sa kategorya, palihug idugang ang ▼ sa linya 3

if(

Usba sa ▼

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

3) Kung dili nimo gusto nga ipakita ang taas nga artikulo sa panid sa tab, palihug ▼ sa linya 3

if(

pagbag-o sa:

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

4) Kung dili nimo gusto nga ang panid sa tagsulat magpakita sa taas nga artikulo, palihug ▼ sa linya 3

if(

Usba sa ▼

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

5) Kung dili nimo gusto ang usa ka naandan nga panid sa kategorya nga ipakita ang taas nga artikulo, ibutang ang

if(

Usba kini sa:

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

Ang kodigo sa ibabaw balido lamang alang sa main loop, kung ikaw naggamit sa WP_Query o query_posts aron makakuha og lista sa mga post sa archive page, ug gusto nga ipakita ang mga pinned posts sa ibabaw sa mga listahan.

Mahimo nimong papason ang mosunod nga code sa linya 3 (mahimong hinungdan nga ang gidaghanon sa mga artikulo nga gipakita nga lahi sa imong gitakda) ▼

|| !is_main_query() 

Idugang ang estilo sa ibabaw nga artikulo

Kung gusto nimong idugang ang mga istilo sa sticky post, idugang ang mosunod nga code sa functions.php ug pagdugang usa ka klase nga ginganlag sticky sa sticky post.

Ang Kinatibuk-ang mga tema sa WordPress adunay CSS code sa pinakataas nga estilo sa artikulo, mahimo usab nimong idugang ang custom ▼

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

Adunay laing paagi sa paghimo sa mga panid sa archive sa kategorya sa WordPress nga magpakita sa mga artikulo sa WordPress sa ibabaw▼

Paglaum Chen Weiliang Blog ( https://www.chenweiliang.com/ ) mipakigbahin "Giunsa paghimo sa WordPress nga kategorya/tag/awtor nga panid nga magpakita sa mga sticky nga artikulo? , aron matabangan ka.

Welcome sa pagpaambit sa link niini nga artikulo:https://www.chenweiliang.com/cwl-878.html

Malipayon nga pag-abut sa channel sa Telegram sa blog ni Chen Weiliang aron makuha ang labing bag-ong mga update!

🔔 Mahimong una nga makakuha sa bililhon nga "ChatGPT Content Marketing AI Tool Usage Guide" sa direktoryo sa taas nga channel! 🌟
📚 Kini nga giya adunay daghang kantidad, 🌟Kini usa ka talagsaon nga oportunidad, ayaw palabya ​​kini! ⏰⌛💨
Share ug like kung ganahan ka!
Ang imong pagpaambit ug pag-like mao ang among padayon nga kadasig!

 

发表 评论

Ang imong email address dili mapatik. Gigamit ang mga kinahanglanon nga uma * Label

scroll sa ibabaw