Indlela yokwenza udidi lwe-WordPress / ithegi / iphepha lombhali libonise amanqaku ancangathi?

WordPressKukho into eyakhelwe-ngaphakathi yokuqhobosha amanqaku phezulu, kodwa ngokungagqibekanga ixhasa kuphela umboniso wamanqaku aphiniweyo kwiphepha lasekhaya.

Amanye amaphepha agciniweyo (afana namaphepha odidi, amaphepha ethegi, amaphepha ombhali, kunye namaphepha omhla) awakwazi ukubonisa amanqaku aphiniweyo phezulu kwaye anokuboniswa kuphela ngendlela engagqibekanga.

Kuninzi okwenziwa kusetyenziswa iWordPressseoabahlobo bonke banethemba lokusombulula ezi ngxaki.

Indlela yokwenza udidi lwe-WordPress / ithegi / iphepha lombhali libonise amanqaku ancangathi?

Enyanisweni, kufuneka sibhekiselele kuphela kwikhowudi ye-wp-includes/query.php yasekhaya kwaye senze uhlengahlengiso oluncinci ukubonisa amanqaku aphiniweyo phezulu kumaphepha ogcino (njengamaphepha ecandelo, amaphepha ethegi, amaphepha ombhali kunye namaphepha omhla) .

Ikhowudi yenqaku efakwe kwi-WordPress

Nceda ubeke le khowudi ilandelayo kwifayile yemisebenzi.php phantsi komxholo wakho wangoku ▼

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

Imiyalelo yokusebenzisa ikhowudi yenqaku ephiniweyo

I-1) Ukuba ufuna iphepha logcino ukuba libonise onke amanqaku aphiniweyo, nceda ucime imigca ye-11-43 yekhowudi;

2) Ukuba awufuni ukubonisa amanqaku aphiniweyo kwiphepha lodidi, nceda utshintshe ▼ kumgca 3

if(

Guqula ku-▼

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

3) Ukuba awufuni ukuba inqaku eliphiniweyo liboniswe kwiphepha lethebhu, nceda ucofe ▼ kumgca 3

if(

tshintsha ube:

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

4) Ukuba awufuni ukuba iphepha lombhali libonise amanqaku aphiniweyo, nceda ucofe ▼ kumgca 3

if(

Guqula ku-▼

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

5) Ukuba awufuni ukuba iphepha elilungiselelweyo libonise amanqaku aphiniweyo, tshintsha i

if(

Tshintshela ku:

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

Ikhowudi engentla isebenza kuphela kwi-loop engundoqo ukuba usebenzisa i-WP_Query okanye i-query_posts ukuze ufumane uluhlu lwezithuba kumaphepha ogcino kwaye ufuna ukubonisa izithuba eziphiniweyo phezulu kwezi zintlu.

Ungayicima le khowudi ilandelayo kumgca wesi-3 (inokubangela ukuba inani lamanqaku abonisiwe ahluke kwinto oyibekayo) ▼

|| !is_main_query() 

Yongeza izimbo kumanqaku aphiniweyo

Ukuba ufuna ukongeza izitayile kwinqaku elincangathi, yongeza le khowudi ilandelayo kwimisebenzi.php kwaye wongeze iklasi ebizwa ngokuba yincangathi kwinqaku elincangathi.

Ngokubanzi, imixholo ye-WordPress iya kuba nekhowudi ye-CSS yezitayile zamanqaku aphiniweyo Ungongeza nokwenza ngokwakho ▼

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

Kukho enye indlela yokwenza udidi lweWordPress iphepha logcino lubonise amanqaku eWordPress ngaphezulu▼

Ndiyathemba Chen Weiliang Blog ( https://www.chenweiliang.com/ ) kwabelwana "Uyenza njani i-WordPress udidi / ithegi / iphepha lombhali libonise amanqaku aphiniweyo? 》, eluncedo kuwe.

Wamkelekile ukwabelana ngekhonkco leli nqaku:https://www.chenweiliang.com/cwl-878.html

Wamkelekile kwisitishi seTelegram sebhlog kaChen Weiliang ukufumana uhlaziyo lwamva nje!

🔔 Yiba ngowokuqala ukufumana iSikhokelo sokuSetyenziswa kweSixhobo se-"ChatGPT yeNtengiso ye-AI" kuluhlu oluphezulu lwetshaneli! 🌟
📚 Esi sikhokelo sinexabiso elikhulu, 🌟Eli lithuba elinqabileyo, ungaliphoswa! ⏰⌛💨
Yabelana kwaye uthanda ukuba uyathanda!
Ukwabelana kwakho kunye nezinto ozithandayo ziyinkuthazo yethu eqhubekayo!

 

Shiya uluvo

Idilesi ye-imeyile ayizukupapashwa. Iinkalo ezifunekayo zisetyenzisiwe * Ileyibheli

skrolela phezulu