Πώς να κάνετε τη σελίδα κατηγορίας/ετικέτας/συγγραφέα WordPress να εμφανίζει κολλώδη άρθρα;

WordPressΥπάρχει μια ενσωματωμένη λειτουργία κολλήματος αντικειμένων, αλλά από προεπιλογή υποστηρίζεται μόνο η επάνω σελίδα για την εμφάνιση κολλωδών άρθρων.

Άλλες σελίδες αρχειοθέτησης (όπως σελίδες κατηγοριών, σελίδες ετικετών, σελίδες συντάκτη και σελίδες ημερομηνιών) δεν μπορούν να εμφανίζουν κολλώδη άρθρα στην κορυφή, μόνο με την προεπιλεγμένη σειρά.

πολλά να κάνουν με το WordPressSEOφίλοι, ελπίζω να λύσουμε αυτά τα προβλήματα.

Πώς να κάνετε τη σελίδα κατηγορίας/ετικέτας/συγγραφέα WordPress να εμφανίζει κολλώδη άρθρα;

Στην πραγματικότητα, χρειάζεται μόνο να αναφερθούμε στον κώδικα της αρχικής σελίδας του wp-includes/query.php και να τον τροποποιήσουμε ελαφρώς, έτσι ώστε το επάνω μέρος της σελίδας του αρχείου (όπως σελίδα κατηγορίας, σελίδα καρτέλας, σελίδα συγγραφέα και σελίδα ημερομηνίας ) μπορεί επίσης να εμφανίσει το κορυφαίο άρθρο.

Κώδικας κολλώδους άρθρου WordPress

Βάλτε τον παρακάτω κώδικα στο αρχείο functions.php κάτω από το τρέχον θέμα ▼

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

Οδηγίες χρήσης του κώδικα του κολλώδους άρθρου

1) Εάν θέλετε η σελίδα αρχειοθέτησης να εμφανίζει όλα τα κορυφαία άρθρα, διαγράψτε τις 11-43 γραμμές κώδικα.

2) Εάν δεν θέλετε να εμφανίζεται το κορυφαίο άρθρο στη σελίδα της κατηγορίας, προσθέστε το ▼ στη γραμμή 3

if(

Τροποποίηση σε ▼

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

3) Εάν δεν θέλετε να εμφανιστεί το επάνω άρθρο στη σελίδα της καρτέλας, ▼ στη γραμμή 3

if(

αλλαγή σε:

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

4) Εάν δεν θέλετε η σελίδα του συγγραφέα να εμφανίζει το κορυφαίο άρθρο, ▼ στη γραμμή 3

if(

Τροποποίηση σε ▼

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

5) Εάν δεν θέλετε μια σελίδα προσαρμοσμένης κατηγορίας να εμφανίζει το κορυφαίο άρθρο, βάλτε το

if(

Αλλάζω σε:

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

Ο παραπάνω κώδικας ισχύει μόνο για τον κύριο βρόχο, εάν χρησιμοποιείτε το WP_Query ή το query_posts για να λάβετε μια λίστα αναρτήσεων στη σελίδα αρχειοθέτησης και θέλετε να εμφανίσετε τις καρφιτσωμένες αναρτήσεις πάνω από αυτές τις λίστες.

Μπορείτε να διαγράψετε τον ακόλουθο κώδικα στη γραμμή 3 (μπορεί να προκαλέσει διαφορετικό αριθμό άρθρων που εμφανίζονται από αυτόν που έχετε ορίσει) ▼

|| !is_main_query() 

Προσθέστε στυλ στο κορυφαίο άρθρο

Εάν θέλετε να προσθέσετε στυλ στη σταθερή ανάρτηση, προσθέστε τον ακόλουθο κώδικα στο functions.php και προσθέστε μια κλάση με το όνομα sticky στη σταθερή ανάρτηση.

Τα γενικά θέματα WordPress θα έχουν τον κώδικα CSS του κορυφαίου στυλ άρθρου, μπορείτε επίσης να προσθέσετε προσαρμοσμένο ▼

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

Υπάρχει ένας άλλος τρόπος για να κάνετε τις σελίδες αρχείου κατηγορίας WordPress να εμφανίζουν άρθρα WordPress στο επάνω μέρος ▼

Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ ) κοινοποίησε το "Πώς να κάνω τη σελίδα κατηγορίας/ετικέτας/συγγραφέα WordPress να εμφανίζει κολλώδη άρθρα; , για να σε βοηθησω.

Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-878.html

Καλώς ήρθατε στο κανάλι Telegram του ιστολογίου του Chen Weiliang για να λαμβάνετε τις τελευταίες ενημερώσεις!

🔔 Γίνετε ο πρώτος που θα αποκτήσει τον πολύτιμο "Οδηγό χρήσης εργαλείου τεχνητής νοημοσύνης μάρκετινγκ περιεχομένου ChatGPT" στον κορυφαίο κατάλογο του καναλιού! 🌟
📚 Αυτός ο οδηγός περιέχει τεράστια αξία, 🌟Αυτή είναι μια σπάνια ευκαιρία, μην τη χάσετε! ⏰⌛💨
Κοινοποιήστε και κάντε like αν σας αρέσει!
Η κοινή χρήση και τα like σας είναι το συνεχές μας κίνητρο!

 

发表 评论

Η διεύθυνση email σας δεν θα δημοσιευθεί. 必填 项 已 用 * 标注

κύλιση στην κορυφή