WordPress санат/тег/автор бетінде жабысқақ мақалаларды қалай көрсетуге болады?

WordPressКірістірілген мақалаларды жабыстыру функциясы бар, бірақ әдепкі бойынша жабысқақ мақалаларды көрсету үшін тек жоғарғы бетке қолдау көрсетіледі.

Басқа мұрағат беттері (санат беттері, тег беттері, автор беттері және күн беттері сияқты) жабысқақ мақалаларды жоғарғы жағында көрсете алмайды, тек әдепкі ретпен.

WordPress-пен көп нәрсе айналысадыSEOдостар, бұл мәселелерді шешуге үміттенемін.

WordPress санат/тег/автор бетінде жабысқақ мақалаларды қалай көрсетуге болады?

Шын мәнінде, бізге тек wp-includes/query.php басты бетінің кодына сілтеме жасау керек және оны мұрағат бетінің жоғарғы жағы (санат беті, қойынды беті, автор беті және күн беті сияқты) болатындай етіп өзгерту керек. ) жоғарғы мақаланы да көрсете алады.

WordPress жабысқақ мақала коды

Ағымдағы тақырыптың астындағы functions.php файлына келесі кодты қойыңыз ▼

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

Жабысқақ мақаланың кодын пайдалану нұсқаулары

1) Мұрағат бетінде барлық ең жақсы мақалалар көрсетілуін қаласаңыз, кодтың 11-43 жолын жойыңыз;

2) Егер сіз санат бетінде жоғарғы мақаланы көрсеткіңіз келмесе, 3-жолға ▼ қосыңыз.

if(

▼ мәніне өзгертіңіз

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

3) Жоғарғы мақаланы қойынды бетінде көрсеткіңіз келмесе, 3-жолда ▼ белгісін қойыңыз.

if(

өзгерту:

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

4) Автор бетінде жоғарғы мақаланың көрсетілуін қаламасаңыз, 3-жолда ▼ белгісін қойыңыз

if(

▼ мәніне өзгертіңіз

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

5) Теңшелетін санат бетінің жоғарғы мақаланы көрсетуін қаламасаңыз, түймесін қойыңыз

if(

Оны келесіге өзгертіңіз:

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

Жоғарыдағы код тек негізгі цикл үшін жарамды, егер сіз мұрағат бетіндегі жазбалар тізімін алу үшін WP_Query немесе query_posts пайдаланып жатсаңыз және сол тізімдердің жоғарғы жағында бекітілген хабарламаларды көрсеткіңіз келсе.

3-жолдағы келесі кодты жоюға болады (көрсетілетін мақалалар саны сіз орнатқаннан басқаша болуы мүмкін) ▼

|| !is_main_query() 

Жоғарғы мақалаға стиль қосыңыз

Егер жабысқақ жазбаға стильдер қосқыңыз келсе, functions.php файлына келесі кодты қосыңыз және жабысқақ жазбаға жабысқақ деп аталатын сыныпты қосыңыз.

Жалпы WordPress тақырыптарында жоғарғы мақала стилі үшін CSS коды болады, сонымен қатар реттелетін ▼ қосуға болады

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

WordPress санатының мұрағат беттерінің жоғарғы жағында WordPress мақалаларын көрсетудің тағы бір жолы бар▼

Hope Chen Weiliang блогы ( https://www.chenweiliang.com/ ) бөлісті "WordPress санаты/тег/автор бетінде жабысқақ мақалаларды қалай көрсетуге болады? , сізге көмектесу үшін.

Осы мақаланың сілтемесін бөлісуге қош келдіңіз:https://www.chenweiliang.com/cwl-878.html

Соңғы жаңартуларды алу үшін Чен Вэйлян блогының Telegram арнасына қош келдіңіз!

🔔 Арнаның жоғарғы каталогындағы құнды "ChatGPT мазмұнды маркетингтік AI құралын пайдалану нұсқаулығын" бірінші болып алыңыз! 🌟
📚 Бұл нұсқаулықта үлкен құндылық бар, 🌟Бұл сирек мүмкіндік, оны жіберіп алмаңыз! ⏰⌛💨
Ұнаса лайк басып, бөлісіңіз!
Сіздің бөлісулеріңіз бен лайктарыңыз - біздің үздіксіз мотивациямыз!

 

Пікірлер

Сіздің электрондық пошта мекен-жайыңыз жарияланбайды. 必填 项 已 用 * 标注

жоғарыға жылжытыңыз