Ki jan fè WordPress kategori / tag / otè paj montre atik kolan?

WordPressGen yon fonksyon entegre atik kole, men pa default sèlman paj an tèt la sipòte yo montre atik kolan.

Lòt paj achiv yo (tankou paj kategori, paj tag, paj otè, ak paj dat) pa kapab montre atik ki te fikse sou tèt yo, sèlman nan lòd defo a.

anpil pou li wè ak WordPressSEOzanmi, espere rezoud pwoblèm sa yo.

Ki jan fè WordPress kategori / tag / otè paj montre atik kolan?

An reyalite, nou sèlman bezwen fè referans a kòd paj lakay wp-includes/query.php epi modifye li yon ti kras, pou tèt paj achiv la (tankou paj kategori, paj tab, paj otè ak paj dat). ) kapab tou montre atik an tèt la.

Kòd atik kolan WordPress

Tanpri mete kòd sa a nan fichye functions.php anba tèm ou ye kounye a ▼

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

Enstriksyon pou itilize kòd atik kolan an

1) Si ou vle paj achiv la montre tout atik ki pi wo yo, tanpri efase 11-43 liy kòd yo;

2) Si ou pa vle montre atik ki pi wo a nan paj kategori a, tanpri ajoute ▼ nan liy 3

if(

Modifye pou ▼

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

3) Si ou pa vle montre atik ki pi wo a sou paj tab la, tanpri ▼ nan liy 3

if(

chanje nan:

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

4) Si ou pa vle paj otè a montre atik ki pi wo a, tanpri ▼ nan liy 3

if(

Modifye pou ▼

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

5) Si ou pa vle yon paj kategori personnalisé pou montre atik an tèt, mete a

if(

Chanje li an:

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

Kòd ki pi wo a sèlman valab pou bouk prensipal la, si w ap itilize WP_Query oswa query_posts pou w ka jwenn yon lis pòs sou paj achiv la, epi w vle montre pòs ki fikse a sou tèt lis sa yo.

Ou ka efase kòd sa a nan liy 3 (ka lakòz kantite atik ki parèt diferan de sa ou mete) ▼

|| !is_main_query() 

Ajoute style nan atik ki pi wo a

Si ou vle ajoute estil nan pòs la kolan, ajoute kòd sa a nan functions.php epi ajoute yon klas yo te rele kolan nan pòs la kolan.

An jeneral tèm WordPress, pral gen kòd CSS pou style atik tèt la, ou ka ajoute tou koutim ▼

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

Gen yon lòt fason pou fè paj achiv kategori WordPress yo montre atik WordPress nan tèt ▼

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) pataje "Ki jan fè WordPress kategori/tag/paj otè montre atik kolan? , pou ede w.

Byenvini pataje lyen atik sa a:https://www.chenweiliang.com/cwl-878.html

Byenveni nan chanèl Telegram blog Chen Weiliang a pou jwenn dènye mizajou yo!

🔔 Se pou premye moun ki jwenn bonjan "ChatGPT Content Maketing AI Itilizasyon Zouti Gid" nan anyè chanèl ki pi wo a! 🌟
📚 Gid sa a gen anpil valè, 🌟Sa a se yon opòtinite ki ra, pa rate li! ⏰⌛💨
Pataje epi like siw renmen!
Pataje w ak renmen ou se motivasyon kontinyèl nou!

 

kòmantè

Adrès imèl ou pa pral pibliye. Jaden obligatwa yo te itilize * Mete etikèt sou

woule nan tèt