Kā panākt, lai WordPress kategorijas/taga/autora lapā tiktu rādīti lipīgi raksti?

WordPressIr iebūvēta rakstu pielīmēšanas funkcija, taču pēc noklusējuma tiek atbalstīta tikai augšējā lapa, lai parādītu lipīgos rakstus.

Citās arhīva lapās (piemēram, kategoriju lapās, tagu lapās, autoru lapās un datuma lapās) nevar parādīt lipīgos rakstus augšpusē, tikai noklusējuma secībā.

daudz kas saistīts ar WordPressSEOdraugi, ceru atrisināt šīs problēmas.

Kā panākt, lai WordPress kategorijas/taga/autora lapā tiktu rādīti lipīgi raksti?

Faktiski mums ir jāatsaucas tikai uz wp-includes/query.php sākumlapas kodu un tas nedaudz jāmaina, lai arhīva lapas augšpusē (piemēram, kategorijas lapa, cilnes lapa, autora lapa un datuma lapa ) var arī parādīt galveno rakstu.

WordPress lipīga raksta kods

Lūdzu, ievietojiet šo kodu functions.php failā zem pašreizējā motīva ▼

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

Norādījumi lipīgā raksta koda lietošanai

1) Ja vēlaties, lai arhīva lapā tiktu rādīti visi populārākie raksti, lūdzu, izdzēsiet 11–43 koda rindiņas;

2) Ja kategorijas lapā nevēlaties rādīt galveno rakstu, lūdzu, pievienojiet ▼ 3. rindā

if(

Mainīt uz ▼

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

3) Ja cilnes lapā nevēlaties rādīt galveno rakstu, lūdzu, ▼ 3. rindā

if(

pārvērsties:

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

4) Ja nevēlaties, lai autora lapā tiktu rādīts top raksts, lūdzu, ▼ 3. rindā

if(

Mainīt uz ▼

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

5) Ja nevēlaties, lai pielāgotas kategorijas lapā tiktu rādīts populārākais raksts, ievietojiet

if(

Mainiet to uz:

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

Iepriekš minētais kods ir derīgs tikai galvenajai cilpai, ja izmantojat WP_Query vai query_posts, lai iegūtu ziņu sarakstu arhīva lapā, un vēlaties parādīt piespraustās ziņas šo sarakstu augšdaļā.

Varat dzēst šādu kodu 3. rindiņā (var parādīto rakstu skaits atšķirties no iestatītā) ▼

|| !is_main_query() 

Pievienojiet stilu galvenajam rakstam

Ja vēlaties pievienot stilus lipīgajai ziņai, pievienojiet šo kodu funkcijai.php un pievienojiet klasi ar nosaukumu Sticky pielīmētajam ierakstam.

Vispārīgos WordPress motīvos būs CSS kods top rakstu stilam, varat arī pievienot pielāgotu ▼

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

Ir vēl viens veids, kā likt WordPress kategoriju arhīva lapām WordPress rakstus rādīt augšpusē▼

Hope Chen Weiliang emuārs ( https://www.chenweiliang.com/ ) kopīgoja "Kā panākt, lai WordPress kategorijas/taga/autora lapā tiktu rādīti lipīgie raksti? , palidzet tev.

Laipni lūdzam kopīgot šī raksta saiti:https://www.chenweiliang.com/cwl-878.html

Laipni lūdzam Chen Weiliang emuāra Telegram kanālā, lai saņemtu jaunākos atjauninājumus!

🔔 Esiet pirmais, kas kanāla augšējā direktorijā iegūst vērtīgo "ChatGPT satura mārketinga AI rīka lietošanas ceļvedi"! 🌟
📚 Šajā rokasgrāmatā ir milzīga vērtība, 🌟Šī ir reta iespēja, nepalaidiet to garām! ⏰⌛💨
Dalies un patīk, ja patīk!
Jūsu kopīgošana un atzīmes Patīk ir mūsu nepārtraukta motivācija!

 

发表 评论

Jūsu e-pasta adrese netiks publicēta. 必填 项 已 用 * Etiķete

ritiniet uz augšu