It Hints
Search
Close this search box.

Всем при­вет. Вы заме­ча­ли что WordPress некор­рект­но сор­ти­ру­ет стан­дарт­ные заго­лов­ки запи­сей если там есть циф­ры ? То есть если у вас есть к при­ме­ру 30 запи­сей с име­нем “Post 1” — “Post 30”, то он их отсор­ти­ру­ет вот так:

Post 1
Post 10
Post 11
Post 12

Post 19
Post 2
Post 20
Post 21

Post 29
Post 3
Post 30

Что согла­си­тесь непра­виль­но и неудобно.

Для того что­бы сор­ти­ров­ка была пра­виль­ной, добавь­те в function.php вашей темы сле­ду­ю­щий код.

				
					add_filter('posts_orderby', 'custom_posts_orderby');

function custom_posts_orderby($orderby_statement) {
    global $wpdb;
    return "LENGTH({$wpdb->posts}.post_title), {$wpdb->posts}.post_title ASC";
}
				
			

На про­сто­рах интер­не­та мож­но было най­ти вот такой код

				
					add_filter('posts_orderby', 'custom_posts_orderby');

function custom_posts_orderby($orderby_statement) {
    global $wpdb;
    return $wpdb->posts . '.post_title+0 ASC';
}

				
			

но он не совсем пра­виль­но рабо­та­ет, то есть он начи­на­ет сор­ти­ро­вать не с пер­вой запи­си, поэто­му я его немно­го видоизменил.

Друзья - если вы нашли для себя что то полезное и хотите помочь проекту развиваться дальше, Вы можете задонатить любую сумму на поддержку. Деньги пойдут исключительно на оплату доменного имени, хостинга, а так же на мотивацию.

Facebook
Twitter
Email
VK
WhatsApp
Telegram