Kiel fari WordPress kategorio/etikedo/aŭtora paĝo montri gluiĝemajn artikolojn?

WordPressEstas enkonstruita artikolo algluiĝanta funkcio, sed defaŭlte nur la supra paĝo estas subtenata por montri algluiĝajn artikolojn.

Aliaj arkivaj paĝoj (kiel kategoriopaĝoj, etikedpaĝoj, aŭtoraj paĝoj kaj dataj paĝoj) ne povas montri algluiĝajn artikolojn supre, nur en la defaŭlta ordo.

multe rilatas al WordPressSEOamikoj, esperas solvi ĉi tiujn problemojn.

Kiel fari WordPress kategorio/etikedo/aŭtora paĝo montri gluiĝemajn artikolojn?

Fakte, ni nur bezonas referenci al la kodo de la hejmpaĝo de wp-includes/query.php kaj modifi ĝin iomete, tiel ke la supro de la arkiva paĝo (kiel kategorio paĝo, langeto paĝo, aŭtoro paĝo kaj dato paĝo. ) povas ankaŭ montri la supran artikolon.

WordPress Gluita Artikolo-Kodo

Bonvolu meti la sekvan kodon en la functions.php-dosieron sub via nuna temo ▼

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

Instrukcioj por uzi la kodon de la glueca artikolo

1) Se vi volas, ke la arkivpaĝo aperu ĉiujn ĉefajn artikolojn, bonvolu forigi la 11-43 liniojn de kodo;

2) Se vi ne volas montri la supran artikolon sur la kategoriopaĝo, bonvolu aldoni ▼ en linio 3

if(

Modifi al ▼

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

3) Se vi ne volas montri la supran artikolon sur la langeto-paĝo, bonvolu ▼ en linio 3

if(

ŝanĝi en:

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

4) Se vi ne volas, ke la aŭtora paĝo aperu la supran artikolon, bonvolu ▼ en linio 3

if(

Modifi al ▼

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

5) Se vi ne volas, ke laŭmenda kategorio-paĝo aperu la supran artikolon, metu la

if(

Ŝanĝu ĝin al:

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

La supra kodo validas nur por la ĉefa buklo, se vi uzas WP_Query aŭ query_posts por ricevi liston de afiŝoj sur la arkivpaĝo, kaj volas montri la alpinglitajn afiŝojn supre de tiuj listoj.

Vi povas forigi la sekvan kodon en linio 3 (povas kaŭzi, ke la nombro da artikoloj montrataj diferencas de tio, kion vi agordis) ▼

|| !is_main_query() 

Aldonu stilon al la ĉefa artikolo

Se vi volas aldoni stilojn al la glueca afiŝo, aldonu la sekvan kodon al functions.php kaj aldonu klason nomitan gluiĝema al la glueca afiŝo.

Ĝenerale WordPress-temoj, estos CSS-kodo por la ĉefa artikola stilo, vi ankaŭ povas aldoni kutimon ▼

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

Estas alia maniero fari WordPress-kategoriajn arkivajn paĝojn montri WordPress-artikolojn supre▼

Hope Chen Weiliang Blogo ( https://www.chenweiliang.com/ ) konigis "Kiel fari WordPress kategorio/etikedo/aŭtora paĝo montri gluiĝemajn artikolojn? , por helpi vin.

Bonvenon dividi la ligon de ĉi tiu artikolo:https://www.chenweiliang.com/cwl-878.html

Bonvenon al la Telegram-kanalo de la blogo de Chen Weiliang por ricevi la plej novajn ĝisdatigojn!

🔔 Estu la unua ricevi la valoran "ChatGPT Content Marketing AI Tool Use Guide" en la ĉefa dosierujo de la kanalo! 🌟
📚 Ĉi tiu gvidilo enhavas grandegan valoron, 🌟Ĉi tio estas malofta ŝanco, ne maltrafu ĝin! ⏰⌛💨
Kunhavigu kaj ŝatu se vi ŝatas!
Via kundivido kaj ŝatoj estas nia kontinua instigo!

 

Lasu komenton

Via retpoŝta adreso ne estos publikigita. Bezonataj kampoj estas uzataj * Etikedo

rulumu al la supro