Sida loo sameeyo qaybta WordPress/tag/bogga qoraaga tuso maqaallo dhegdheg leh?

WordPress wuxuu leeyahay astaamo ku dhex jira oo lagu dhejiyo qoraallada, laakiin si caadi ah waxay ku soo bandhigaysaa oo keliya qoraallada la dhejiyay bogga hore.

Bogagga kale ee kaydka (sida boggaga qaybta, boggaga tag, boggaga qoraaga, iyo bogga taariikhda) kama soo bandhigi karaan maqaallo dhegdheg ah xagga sare, kaliya siday u kala horreeyaan.

Dad badan oo WordPress u isticmaala SEO ayaa rajeynaya inay xalliyaan dhibaatooyinkan.

Sida loo sameeyo qaybta WordPress/tag/bogga qoraaga tuso maqaallo dhegdheg leh?

Dhab ahaantii, waxaan kaliya u baahanahay inaan tixraacno koodhka bogga guriga ee wp-includes/query.php oo aan wax yar ka beddelno, si sare ee bogga kaydka (sida bogga qaybta, bogga tab, bogga qoraaga iyo bogga taariikhda ) sidoo kale waxay soo bandhigi kartaa maqaalka ugu sarreeya.

Koodhka maqaalka dhegdheg ee WordPress

Fadlan geli koodka soo socda faylka functional.php mawduucaaga hadda ▼

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

Tilmaamaha isticmaalka koodka maqaalka dhejiska ah

1) Haddii aad rabto in bogga kaydku soo bandhigo dhammaan maqaallada ugu sarreeya, fadlan tirtir 11-43 khadadka koodka;

2) Haddii aadan rabin inaad ku muujiso maqaalka ugu sarreeya bogga qaybta, fadlan ku dar ▼ safka 3

if(

U beddelo ▼

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

3) Haddii aadan rabin inaad ku muujiso maqaalka ugu sarreeya bogga tab, fadlan ▼ safka 3aad

if(

u beddel:

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

4) Haddii aadan rabin in bogga qoraagu soo bandhigo maqaalka ugu sarreeya, fadlan ▼ safka 3aad

if(

U beddelo ▼

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

5) Haddii aadan rabin bogga qaybta gaarka ah si aad u muujiso maqaalka ugu sarreeya, ku dheji

if(

U beddel:

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

Koodhka sare waxa uu kaliya u shaqaynayaa loop-ka wayn, hadii aad isticmaalayso WP_Query ama query_posts si aad u hesho liis qoraalo ah oo ku yaal bogga kaydka, oo aad rabto in aad muujiso boostada ku dheggan liisaska sare.

Waxaad ku tirtiri kartaa koodka soo socda ee safka 3 (waxaa laga yaabaa inay keento tirada maqaallada la soo bandhigay inay ka duwan yihiin waxaad dejisay) ▼

|| !is_main_query() 

Kudar qaabka maqaalka sare

Haddii aad rabto in aad qaabab ku darto boostada dhegdhegaysan, ku dar koodkan soo socda functional.php oo ku dar fasal magac leh oo dhegdheg leh.

Mawduucyada guud ee WordPress waxay yeelan doonaan koodka CSS ee qaabka maqaalka ugu sarreeya, waxaad sidoo kale ku dari kartaa caadada ▼

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

Waxaa jira hab kale oo lagu sameeyo boggaga kaydka qaybta WordPress inay muujiyaan maqaallada WordPress ee ugu sarreeya▼

评论

您的邮箱地址不会被公开。必填项已用*标注

Scroll to top