Како натерати ВордПресс категорију/ознаку/ауторску страницу да приказује лепљиве чланке?

WordPressПостоји уграђена функција лепљења чланака, али је подразумевано само горња страница подржана за приказивање лепљивих чланака.

Друге архивске странице (као што су странице категорија, странице са ознакама, странице аутора и странице са датумима) не могу да приказују лепљиве чланке на врху, само у подразумеваном редоследу.

има пуно посла са ВордПресс-омSЕОпријатељи, надамо се да ћемо решити ове проблеме.

Како натерати ВордПресс категорију/ознаку/ауторску страницу да приказује лепљиве чланке?

У ствари, потребно је само да се позовемо на код почетне странице вп-инцлудес/куери.пхп и да га мало изменимо, тако да врх странице архиве (као што је страница категорије, страница картице, страница аутора и страница са датумом ) такође може да прикаже горњи чланак.

ВордПресс лепљиви код артикла

Ставите следећи код у датотеку фунцтионс.пхп испод ваше тренутне теме ▼

//让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' ) ||

Горњи код важи само за главну петљу, ако користите ВП_Куери или куери_постс да бисте добили листу постова на страници архиве и желите да прикажете закачене постове на врху тих листа.

Можете да избришете следећи код у реду 3 (може довести до тога да се број приказаних чланака разликује од онога што сте поставили) ▼

|| !is_main_query() 

Додајте стил у горњи чланак

Ако желите да додате стилове лепљивом посту, додајте следећи код у фунцтионс.пхп и додајте класу под називом стицки у лепљиви пост.

У општим ВордПресс темама, постојаће ЦСС код за врхунски стил чланка, можете додати и прилагођени ▼

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

Постоји још један начин да наведете да странице архиве ВордПресс категорија приказују ВордПресс чланке на врху▼

Блог Хопе Цхен Веилианг ( https://www.chenweiliang.com/ ) поделио је „Како да натераш ВордПресс категорију/ознаку/аутор да приказује лепљиве чланке? , да ти помогне.

Добродошли да поделите везу овог чланка:https://www.chenweiliang.com/cwl-878.html

Добродошли на Телеграм канал блога Цхен Веилианг-а да бисте добили најновија ажурирања!

🔔 Будите први који ће добити драгоцени „Водич за коришћење алата за вештачку интелигенцију за маркетинг садржаја ЦхатГПТ“ у главном директоријуму канала! 🌟
📚 Овај водич садржи огромну вредност, 🌟Ово је ретка прилика, не пропустите је! ⏰⌛💨
Поделите и лајкујте ако желите!
Ваше дељење и лајкови су наша стална мотивација!

 

评论

Ваша емаил адреса неће бити објављена. Обавезна поља се користе * Ознака

Иди на врх