Як прымусіць старонку катэгорыі/тэга/аўтара 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 у блогу Чэнь Вэйляна, каб атрымліваць апошнія абнаўленні!

🔔 Будзьце першым, хто атрымае каштоўнае "Кіраўніцтва па выкарыстанні інструмента AI для маркетынгу кантэнту ChatGPT" у верхнім каталогу канала! 🌟
📚 Гэты дапаможнік мае вялікую каштоўнасць, 🌟Гэта рэдкая магчымасць, не прапусціце яе! ⏰⌛💨
Падзяліцеся і лайкайце, калі хочаце!
Ваш абмен і лайкі - наша пастаянная матывацыя!

 

发表 评论

Ваш адрас электроннай пошты не будзе апублікаваны. 必填 项 已 用 * Этыкетка

пракруціць ўверх