Paano gumawa ng kategorya ng WordPress/tag/may-akda na magpapakita ng mga malagkit na artikulo?

WordPressMayroong built-in na function ng pagdikit ng artikulo, ngunit bilang default, ang tuktok na pahina lamang ang sinusuportahan upang magpakita ng mga malagkit na artikulo.

Ang iba pang mga pahina ng archive (tulad ng mga pahina ng kategorya, mga pahina ng tag, mga pahina ng may-akda, at mga pahina ng petsa) ay hindi maaaring magpakita ng mga malagkit na artikulo sa itaas, sa default na pagkakasunud-sunod lamang.

maraming gagawin sa WordPressSEOmga kaibigan, sana malutas ang mga problemang ito.

Paano gumawa ng kategorya ng WordPress/tag/may-akda na magpapakita ng mga malagkit na artikulo?

Sa katunayan, kailangan lang nating sumangguni sa code ng home page ng wp-includes/query.php at bahagyang baguhin ito, upang ang tuktok ng pahina ng archive (tulad ng pahina ng kategorya, pahina ng tab, pahina ng may-akda at pahina ng petsa ) ay maaari ding ipakita ang nangungunang artikulo.

Malagkit na code ng artikulo ng WordPress

Mangyaring ilagay ang sumusunod na code sa functions.php file sa ilalim ng iyong kasalukuyang tema ▼

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

Mga tagubilin para sa paggamit ng code ng malagkit na artikulo

1) Kung gusto mong ipakita ng archive page ang lahat ng nangungunang artikulo, mangyaring tanggalin ang 11-43 linya ng code;

2) Kung ayaw mong ipakita ang nangungunang artikulo sa pahina ng kategorya, mangyaring magdagdag ng ▼ sa linya 3

if(

Baguhin sa ▼

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

3) Kung ayaw mong ipakita ang nangungunang artikulo sa pahina ng tab, mangyaring ▼ sa linya 3

if(

baguhin sa:

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

4) Kung ayaw mong ipakita ng pahina ng may-akda ang nangungunang artikulo, mangyaring ▼ sa linya 3

if(

Baguhin sa ▼

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

5) Kung ayaw mong ipakita ng custom na page ng kategorya ang nangungunang artikulo, ilagay ang

if(

Baguhin ito sa:

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

Ang code sa itaas ay may bisa lamang para sa pangunahing loop, kung gumagamit ka ng WP_Query o query_posts upang makakuha ng isang listahan ng mga post sa pahina ng archive, at nais na ipakita ang naka-pin na post sa itaas ng mga listahang iyon.

Maaari mong tanggalin ang sumusunod na code sa linya 3 (maaaring maging sanhi ng bilang ng mga artikulong ipinapakita na iba sa itinakda mo) ▼

|| !is_main_query() 

Magdagdag ng istilo sa tuktok na artikulo

Kung gusto mong magdagdag ng mga istilo sa malagkit na post, idagdag ang sumusunod na code sa functions.php at magdagdag ng klase na pinangalanang sticky sa malagkit na post.

Sa pangkalahatang mga tema ng WordPress, magkakaroon ng CSS code para sa nangungunang istilo ng artikulo, maaari ka ring magdagdag ng pasadyang ▼

//置顶文章添加样式
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;
} 
  • Ang nangungunang epekto sa istilo ng artikulo ng pahina ng kategorya,Chen WeiliangMga kategorya ng artikulo sa blog:Chinese mobile number
  • (Nag-expire na ang pagbabago ng tema)

May isa pang paraan upang ipakita ang mga pahina ng archive ng kategorya ng WordPress ng mga artikulo sa WordPress sa itaas▼

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ibinahagi "Paano gawin ang kategorya ng WordPress/tag/may-akda na magpapakita ng mga malagkit na artikulo? , para tulungan ka.

Maligayang pagdating upang ibahagi ang link ng artikulong ito:https://www.chenweiliang.com/cwl-878.html

Maligayang pagdating sa Telegram channel ng blog ni Chen Weiliang para makuha ang pinakabagong mga update!

🔔 Maging una upang makuha ang mahalagang "ChatGPT Content Marketing AI Tool Usage Guide" sa direktoryo ng nangungunang channel! 🌟
📚 Ang gabay na ito ay naglalaman ng malaking halaga, 🌟Ito ay isang bihirang pagkakataon, huwag palampasin ito! ⏰⌛💨
Share and like kung gusto mo!
Ang iyong pagbabahagi at pag-like ay ang aming patuloy na pagganyak!

 

发表 评论

Ang iyong email address ay hindi mai-publish. 必填 项 已 用 * Tatak

mag-scroll sa itaas