როგორ ვაჩვენოთ WordPress-ის კატეგორიის/ტეგის/ავტორის გვერდს წებოვანი სტატიები?

WordPressარის ჩაშენებული სტატიის დამაგრების ფუნქცია, მაგრამ ნაგულისხმევად მხოლოდ ზედა გვერდია მხარდაჭერილი წებოვანი სტატიების ჩვენებისთვის.

სხვა საარქივო გვერდები (როგორიცაა კატეგორიის გვერდები, თეგების გვერდები, ავტორის გვერდები და თარიღის გვერდები) ვერ აჩვენებენ წებოვან სტატიებს ზედა, მხოლოდ ნაგულისხმევი თანმიმდევრობით.

ბევრი რამ არის დაკავშირებული WordPress-თანSEOმეგობრებო, იმედია მოვაგვარებთ ამ პრობლემებს.

როგორ ვაჩვენოთ WordPress-ის კატეგორიის/ტეგის/ავტორის გვერდს წებოვანი სტატიები?

სინამდვილეში, ჩვენ მხოლოდ უნდა მივმართოთ wp-includes/query.php-ის საწყისი გვერდის კოდს და ოდნავ შევცვალოთ იგი ისე, რომ არქივის გვერდის ზედა ნაწილი (როგორიცაა კატეგორიის გვერდი, ჩანართის გვერდი, ავტორის გვერდი და თარიღის გვერდი ) ასევე შეუძლია ზედა სტატიის ჩვენება.

WordPress Sticky მუხლის კოდი

გთხოვთ, განათავსოთ შემდეგი კოდი 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 კოდი სტატიის მთავარი სტილისთვის, ასევე შეგიძლიათ დაამატოთ 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;
} 

არსებობს კიდევ ერთი გზა, რათა WordPress კატეგორიის არქივის გვერდებმა აჩვენონ WordPress სტატიები ზედა ▼

იმედი ჩენ ვეილიანგის ბლოგი ( https://www.chenweiliang.com/ ) გააზიარა „როგორ ვაჩვენოთ WordPress კატეგორიის/ტეგის/ავტორის გვერდს წებოვანი სტატიები? , რომ დაგეხმარო.

კეთილი იყოს თქვენი მობრძანება ამ სტატიის ბმულის გასაზიარებლად:https://www.chenweiliang.com/cwl-878.html

კეთილი იყოს თქვენი მობრძანება Chen Weiliang-ის ბლოგის ტელეგრამის არხზე, რომ მიიღოთ უახლესი განახლებები!

🔔 იყავით პირველი, ვინც მიიღეთ ღირებული "ChatGPT Content Marketing AI Tool Usage Guide" არხის ზედა დირექტორიაში! 🌟
📚 ეს სახელმძღვანელო შეიცავს უზარმაზარ ღირებულებას, 🌟ეს იშვიათი შესაძლებლობაა, არ გამოტოვოთ! ⏰⌛💨
გააზიარეთ და მოიწონეთ თუ მოგეწონათ!
თქვენი გაზიარება და მოწონებები ჩვენი უწყვეტი მოტივაციაა!

 

评论

თქვენი ელ.ფოსტის მისამართი არ გამოქვეყნდება. გამოყენებულია აუცილებელი ველები * ლეიბლი

გადახვევა ზევით