Wéi maachen ech WordPress Kategorie / Tag / Autor Säit weisen plakeg Artikelen?

WordPressEt gëtt eng gebaut-an Artikel Sticking Funktioun, awer par défaut gëtt nëmmen déi Top Säit ënnerstëtzt fir plakeg Artikelen ze weisen.

Aner Archiv Säiten (wéi Kategorie Säiten, Tag Säiten, Auteur Säiten, an Datum Säiten) kann net gespäichert Artikelen uewen ugewisen, nëmmen an der Default Uerdnung.

vill mat WordPress ze dinnAm PrinzipFrënn, hoffen dës Problemer ze léisen.

Wéi maachen ech WordPress Kategorie / Tag / Autor Säit weisen plakeg Artikelen?

Tatsächlech brauche mir nëmmen de Code vun der Homepage vu wp-includes/query.php ze referenzéieren an et liicht z'änneren, sou datt d'Spëtzt vun der Archivsäit (wéi Kategorie Säit, Tab Säit, Auteur Säit an Datum Säit) ) kann och den Top Artikel weisen.

WordPress Sticky Artikelcode

Gitt w.e.g. de folgende Code an der functions.php Datei ënner Ärem aktuellen Thema ▼

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

Instruktioune fir de Code vum Sticky Artikel ze benotzen

1) Wann Dir wëllt datt d'Archiv Säit all Top Artikelen weist, läscht w.e.g. d'11-43 Zeilen vum Code;

2) Wann Dir den Top Artikel op der Kategorie Säit net wëllt weisen, da füügt w.e.g. ▼ an der Linn 3 derbäi

if(

Änneren op ▼

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

3) Wann Dir den Top Artikel op der Tab Säit net wëllt weisen, w.e.g. ▼ an der Linn 3

if(

änneren an:

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

4) Wann Dir net wëllt datt d'Auteur Säit den Top Artikel weist, w.e.g. ▼ an der Linn 3

if(

Änneren op ▼

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

5) Wann Dir net wëllt datt eng personaliséiert Kategorie Säit den Top Artikel weist, setzt de

if(

Ännert et op:

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

Deen uewe genannte Code ass nëmme gëlteg fir d'Haaptschleife, wann Dir WP_Query oder query_posts benotzt fir eng Lëscht vu Posts op der Archiv Säit ze kréien, a wëllt de gepechte Post uewen op dës Lëschte weisen.

Dir kënnt de folgende Code an der Linn 3 läschen (kann dozou féieren datt d'Zuel vun den ugewisen Artikelen anescht ass wéi dat wat Dir agestallt hutt) ▼

|| !is_main_query() 

Füügt Stil un den Top Artikel

Wann Dir Stiler op de Sticky Post wëllt addéieren, füügt de folgende Code op functions.php a füügt eng Klass mam Numm Sticky un de Sticky Post.

Allgemeng WordPress Themen hunn den CSS Code vum Top Artikelstil, Dir kënnt och personaliséiert ▼ addéieren

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

Et gëtt eng aner Manéier fir WordPress Kategorie Archiv Säiten ze weisen WordPress Artikelen uewen▼

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeelt "Wéi maachen ech WordPress Kategorie / Tag / Autor Säit ze weisen plakeg Artikelen? , fir Iech ze hëllefen.

Wëllkomm de Link vun dësem Artikel ze deelen:https://www.chenweiliang.com/cwl-878.html

Wëllkomm op dem Telegram Kanal vum Chen Weiliang säi Blog fir déi lescht Updates ze kréien!

🔔 Gitt deen Éischten dee wäertvollen "ChatGPT Content Marketing AI Tool Usage Guide" am Kanal Top Verzeechnes ze kréien! 🌟
📚 Dëse Guide enthält en enorme Wäert, 🌟 Dëst ass eng selten Geleeënheet, verpasst et net! ⏰⌛💨
Deelen a liken wann dir wëllt!
Är Deelen a Likes sinn eis kontinuéierlech Motivatioun!

 

Comments

Är E-Mail Adress gëtt net verëffentlecht. Néideg Felder gi benotzt * Etikett

scroll no uewen