Jinsi ya kufanya kitengo cha WordPress / lebo / ukurasa wa mwandishi kuonyesha vifungu vya kunata?

WordPressKuna kipengele cha kubandika makala kilichojengewa ndani, lakini kwa chaguo-msingi ni ukurasa wa juu pekee unaotumika kuonyesha makala nata.

Kurasa zingine za kumbukumbu (kama vile kurasa za kategoria, kurasa za lebo, kurasa za mwandishi, na kurasa za tarehe) haziwezi kuonyesha makala nata juu, katika mpangilio chaguomsingi pekee.

mengi ya kufanya na WordPressSEOmarafiki, matumaini ya kutatua matatizo haya.

Jinsi ya kufanya kitengo cha WordPress / lebo / ukurasa wa mwandishi kuonyesha vifungu vya kunata?

Kwa kweli, tunahitaji tu kurejelea msimbo wa ukurasa wa nyumbani wa wp-includes/query.php na urekebishe kidogo, ili sehemu ya juu ya ukurasa wa kumbukumbu (kama vile ukurasa wa kitengo, ukurasa wa kichupo, ukurasa wa mwandishi na ukurasa wa tarehe. ) inaweza pia kuonyesha makala ya juu.

Msimbo wa makala unaonata wa WordPress

Tafadhali weka msimbo ufuatao katika faili ya function.php chini ya mada yako ya sasa ▼

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

Maagizo ya kutumia kanuni ya makala nata

1) Ikiwa unataka ukurasa wa kumbukumbu uonyeshe vifungu vyote vya juu, tafadhali futa mistari 11-43 ya msimbo;

2) Ikiwa hutaki kuonyesha makala ya juu kwenye ukurasa wa kitengo, tafadhali ongeza ▼ kwenye mstari wa 3.

if(

Rekebisha hadi ▼

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

3) Ikiwa hutaki kuonyesha makala ya juu kwenye ukurasa wa kichupo, tafadhali ▼ kwenye mstari wa 3

if(

badilisha kuwa:

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

4) Ikiwa hutaki ukurasa wa mwandishi uonyeshe makala ya juu, tafadhali ▼ kwenye mstari wa 3

if(

Rekebisha hadi ▼

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

5) Ikiwa hutaki ukurasa maalum wa kategoria ili kuonyesha nakala ya juu, weka faili ya

if(

Ibadilishe kuwa:

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

Msimbo ulio hapo juu ni halali kwa kitanzi kikuu pekee, ikiwa unatumia WP_Query au query_posts kupata orodha ya machapisho kwenye ukurasa wa kumbukumbu, na unataka kuonyesha chapisho lililobandikwa juu ya orodha hizo.

Unaweza kufuta msimbo ufuatao katika mstari wa 3 (huenda ikasababisha idadi ya vifungu vinavyoonyeshwa kuwa tofauti na ulivyoweka) ▼

|| !is_main_query() 

Ongeza mtindo kwa makala ya juu

Ikiwa ungependa kuongeza mitindo kwenye chapisho linalonata, ongeza msimbo ufuatao kwenye function.php na uongeze darasa linaloitwa nata kwenye chapisho linalonata.

Kwa jumla mandhari ya WordPress, kutakuwa na msimbo wa CSS kwa mtindo wa makala ya juu, unaweza pia kuongeza desturi ▼

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

Kuna njia nyingine ya kufanya kurasa za kumbukumbu za kitengo cha WordPress zionyeshe nakala za WordPress juu▼

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ilishirikiwa "Jinsi ya kufanya ukurasa wa WordPress/tag/mwandishi uonyeshe makala nata? , kukusaidia.

Karibu kushiriki kiungo cha makala hii:https://www.chenweiliang.com/cwl-878.html

Karibu kwenye chaneli ya Telegramu ya blogu ya Chen Weiliang ili kupata masasisho mapya zaidi!

🔔 Kuwa wa kwanza kupata "Mwongozo wa Matumizi ya Zana ya AI ya Uuzaji wa Maudhui ya ChatGPT" katika saraka ya juu ya kituo! 🌟
📚 Mwongozo huu una thamani kubwa, 🌟Hii ni fursa adimu, usiikose! ⏰⌛💨
Share na like ukipenda!
Kushiriki kwako na kupenda kwako ndio motisha yetu inayoendelea!

 

发表 评论

Anwani yako ya barua pepe haitachapishwa. 必填 项 已 用 * 标注

tembeza juu