Artikelverzeichnis
WordPressEs gibt eine eingebaute Funktion zum Anheften von Artikeln, aber standardmäßig wird nur die oberste Seite unterstützt, um angeheftete Artikel anzuzeigen.
Andere Archivseiten (wie Kategorieseiten, Tag-Seiten, Autorenseiten und Datumsseiten) können keine fixierten Artikel oben anzeigen, sondern nur in der Standardreihenfolge.
viel mit WordPress zu tunSEOFreunde, hoffen, diese Probleme zu lösen.

Tatsächlich müssen wir nur auf den Code der Startseite von wp-includes/query.php verweisen und ihn leicht ändern, damit der Anfang der Archivseite (wie Kategorieseite, Registerkartenseite, Autorenseite und Datumsseite ) kann auch den obersten Artikel anzeigen.
WordPress Sticky-Artikelcode
Bitte fügen Sie den folgenden Code in die Datei functions.php unter Ihrem aktuellen Design ein ▼
//让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;
} Anweisungen zur Verwendung des Codes des klebrigen Artikels
1) Wenn Sie möchten, dass die Archivseite alle Top-Artikel anzeigt, löschen Sie bitte die Codezeilen 11-43;
2) Wenn Sie den Top-Artikel nicht auf der Kategorieseite anzeigen möchten, fügen Sie bitte in Zeile 3 ein ▼ hinzu
if(
Zu ▼ ändern
// abc是分类的名称 if ( is_category( 'abc' ) ||
3) Wenn Sie den obersten Artikel nicht auf der Reiterseite anzeigen möchten, bitte ▼ in Zeile 3
if(
ändern in:
// abc是标签的名称
if ( is_tag( 'abc' ) ||
4) Wenn Sie nicht möchten, dass die Autorenseite den Top-Artikel anzeigt, bitte ▼ in Zeile 3
if(
Zu ▼ ändern
// abc是作者的昵称
if ( is_author( 'abc' ) ||
5) Wenn Sie nicht möchten, dass eine benutzerdefinierte Kategorieseite den obersten Artikel anzeigt, setzen Sie die
if(
Ändern Sie es in:
// series是自定义分类、abc是自定义分类名称 if ( is_series( 'abc' ) ||
Der obige Code ist nur für die Hauptschleife gültig, wenn Sie WP_Query oder query_posts verwenden, um eine Liste von Beiträgen auf der Archivseite zu erhalten, und den angehefteten Beitrag über diesen Listen anzeigen möchten.
Sie können den folgenden Code in Zeile 3 löschen (kann dazu führen, dass die Anzahl der angezeigten Artikel von Ihrer Einstellung abweicht) ▼
|| !is_main_query()
Fügen Sie dem obersten Artikel Stil hinzu
Wenn Sie dem Sticky-Post Stile hinzufügen möchten, fügen Sie den folgenden Code zu functions.php hinzu und fügen Sie dem Sticky-Post eine Klasse namens sticky hinzu.
Allgemeine WordPress-Designs haben den CSS-Code des Top-Artikelstils, Sie können auch benutzerdefinierte ▼ hinzufügen
//置顶文章添加样式
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;
} - Der Top-Artikel-Stileffekt der Kategorieseite,Chen WeiliangKategorien von Blogartikeln:Chinesische Handynummer
- (Design ändern ist abgelaufen)
Es gibt eine andere Möglichkeit, WordPress-Kategoriearchivseiten dazu zu bringen, WordPress-Artikel oben anzuzeigen▼
Hoffnung Chen Weiliang Blog ( https://www.chenweiliang.com/ ) teilte mit: „Wie kann man WordPress-Kategorien/Tags/Autorenseiten dazu bringen, klebrige Artikel anzuzeigen? , dir zu helfen.
Willkommen, um den Link dieses Artikels zu teilen:https://www.chenweiliang.com/cwl-878.html
Um weitere versteckte Tricks freizuschalten🔑, treten Sie unserem Telegram-Kanal bei!
Teilen und liken, wenn es Ihnen gefällt! Ihre Shares und Likes sind unsere ständige Motivation!