<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Wordpress - Павел Васильев. Блог.</title>
    <link>https://pavel.su/tags/wordpress/</link>
    <description>Wordpress</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru-RU</language>
    <lastBuildDate>Thu, 12 Nov 2026 11:57:34 &#43;0000</lastBuildDate>
    <atom:link href="https://pavel.su/tags/wordpress/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Как отсортировать записи внутри категории Wordpress</title>
      <link>https://pavel.su/it/how-to-sort-posts-in-separate-category/</link>
      <pubDate>Sat, 25 Mar 2023 09:00:00 &#43;0000</pubDate>
      <guid>https://pavel.su/it/how-to-sort-posts-in-separate-category/</guid>
      <description>Как выполнить сортировку статей при отображении категории, если сортировка по дате вас не устраивает?</description>
      <content:encoded><![CDATA[<p>Задача: задать ручную сортировку записей в Wordpress при отображении заданной категории, но при этом оставить стандартную сортировку для общего списка записей на главной странице или в других категориях.</p>
<h2 id="задача">Задача</h2>
<p>Пример: хочу на своём сайте отсортировать категорию &ldquo;СОРМ&rdquo; вручную - чтобы при открытии списка постов этой категории был определенный порядок.</p>
<p>Возможные решения: существует целый набор разных плагинов для Wordpress, которые позволяют изменять общую сортировку записей (не подходит - надо именно внутри одной категории), или сортировку заданной категории, но ни одного реально работающего &ldquo;из коробки&rdquo; я не нашёл.</p>
<p>Решение:</p>
<ol>
<li>
<p>Плагин <a href="https://ru.wordpress.org/plugins/category-custom-post-order/">Order Posts</a> с сортировкой по заданному полю</p>
</li>
<li>
<p>Плагин <a href="https://ru.wordpress.org/plugins/advanced-custom-fields/">Advanced Custom Fields</a> для создания отдельного поля для сортировки</p>
</li>
<li>
<p>Правка файла functions.php для отображения колонки с номерами сортировки</p>
</li>
</ol>
<h2 id="подробнее-по-шагам">Подробнее, по шагам</h2>
<h3 id="1-создаём-поле-для-сортировки">1. Создаём поле для сортировки</h3>
<p>Устанавливаем и активируем плагин <a href="https://ru.wordpress.org/plugins/advanced-custom-fields/">ACF - Advanced Custom Fields</a></p>
<p>В боковом меню появляется раздел ACF</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-acf.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-acf.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            width="406"
            height="118"
            
        >
    </a>
    
</figure>
</p>
<p>Добавляем новую группу полей</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-group-fields.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-group-fields_hu_54239e1e3dacb823.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/it/how-to-sort-posts-in-separate-category/images/wp-group-fields_hu_c851ec3d82b4b936.webp 640w, /it/how-to-sort-posts-in-separate-category/images/wp-group-fields_hu_54239e1e3dacb823.webp 960w"
            sizes="100vw"
            width="1024"
            height="369"
            
        >
    </a>
    
</figure>
</p>
<p>и задаём минимальные параметры</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-group-fields-edit.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-group-fields-edit_hu_d0b24d496db2f89.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/it/how-to-sort-posts-in-separate-category/images/wp-group-fields-edit_hu_f996e130ed561dba.webp 640w, /it/how-to-sort-posts-in-separate-category/images/wp-group-fields-edit_hu_d0b24d496db2f89.webp 960w"
            sizes="100vw"
            width="1024"
            height="579"
            
        >
    </a>
    
</figure>
</p>
<p>и говорим где это отображать</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-record-type.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-record-type_hu_3e39bab2d832e856.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/it/how-to-sort-posts-in-separate-category/images/wp-record-type_hu_898afd0a9de733f1.webp 640w, /it/how-to-sort-posts-in-separate-category/images/wp-record-type_hu_3e39bab2d832e856.webp 960w"
            sizes="100vw"
            width="1024"
            height="425"
            
        >
    </a>
    
</figure>
</p>
<p>После этого в редакторе конкретной записи под текстом появится дополнительное поле</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-acf-order.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-acf-order.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            width="246"
            height="141"
            
        >
    </a>
    
</figure>
</p>
<p>Куда будем добавлять число, определяющее порядок записи при отображении категории</p>
<h3 id="2-задаём-сортировку-категории">2. Задаём сортировку категории</h3>
<p>Устанавливаем и активируем плагин <a href="https://ru.wordpress.org/plugins/category-custom-post-order/">Post Order</a>, который в списке плагинов отображается как &ldquo;Order Posts per Taxonomy&rdquo;.</p>
<p><em>По идее одного этого плагина должно было быть <strong>достаточно</strong>, чтобы получить инструмент ручной сортировки с помощью перестаскивания блоков, но у меня такое так и не заработало. Либо не смог найти - на странице плагина всего один скриншот, который ни черта не объясняет.</em></p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-order-by-taxonomy.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-order-by-taxonomy_hu_b50966fa1b8d4e50.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/it/how-to-sort-posts-in-separate-category/images/wp-order-by-taxonomy_hu_b50966fa1b8d4e50.webp 640w"
            sizes="100vw"
            width="688"
            height="198"
            
        >
    </a>
    
</figure>
</p>
<p>Идём в раздел Записи - Рубрики, выбираем конкретную рубрику (у меня - СОРМ), заходим в неё.</p>
<p>На странице редактирования рубрики должно появиться новое поле</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-order-by.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-order-by_hu_2c05d1162336c052.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/it/how-to-sort-posts-in-separate-category/images/wp-order-by_hu_fedf59ba91016125.webp 640w, /it/how-to-sort-posts-in-separate-category/images/wp-order-by_hu_2c05d1162336c052.webp 960w"
            sizes="100vw"
            width="1024"
            height="199"
            
        >
    </a>
    
</figure>
</p>
<p>По большому счёту - готово. Включается сортировка по числовому полю порядка записей.</p>
<h3 id="3-добавляем-колонку-порядка-в-общий-список-записей">3. Добавляем колонку порядка в общий список записей</h3>
<p>Вручную ходить в каждую страницу и держать в голове общий порядок записей - то ещё занятие. Хочу сразу в общем списке смотреть что именно хранится в этом поле в каждой записи.</p>
<p>Для этого будем редактировать файл functinos.php.</p>
<p><strong>Варианты редактирования:</strong></p>
<ol>
<li>
<p>Админка - Внешний вид - Редактор тем, файл functions.php (Theme Functions)</p>
</li>
<li>
<p>Скачать файл на локальный комп (например ftp), отредактировать и залить обратно</p>
</li>
<li>
<p>Отредактировать прямо на сервере (дада, прямо на проде, чего мелочиться?))) )</p>
</li>
</ol>
<p>Редактирование подсмотрел у <a href="https://misha.agency/wordpress/add-or-remove-table-columns.html#column-for-posts-table">misha.agency</a>. Ну, как подсмотрел - тупо скопировал код и минимально отредактировал.</p>
<p>Код вставляется в конец файла functions.php.</p>
<p>Код:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">// add_filter( &#39;manage_edit-{ТИП ПОСТА}_columns&#39;, &#39;true_add_post_columns&#39;, 25 );
</span></span><span class="line"><span class="cl">add_filter( &#39;manage_edit-post_columns&#39;, &#39;true_add_post_columns&#39;, 25 ); // для обычных записей
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">function true_add_post_columns( $my_columns ){
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">	$my_columns[ &#39;views&#39; ] = &#39;ACF Order&#39;;
</span></span><span class="line"><span class="cl">	return $my_columns;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">// а вот этот хук один общий для всех типов постов!
</span></span><span class="line"><span class="cl">add_action( &#39;manage_posts_custom_column&#39;, &#39;true_fill_post_columns&#39;, 25 );
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">function true_fill_post_columns( $column ) {
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">	switch ( $column ) {
</span></span><span class="line"><span class="cl">		case &#39;views&#39;: {
</span></span><span class="line"><span class="cl">			//$views = get_post_meta( get_the_ID(), &#39;views&#39;, true );
</span></span><span class="line"><span class="cl">			$views = get_post_meta( get_the_ID(), &#39;acf_order&#39;, true );
</span></span><span class="line"><span class="cl">			//echo $views ? $views : 0; // выводим 0, если просмотров нет
</span></span><span class="line"><span class="cl">			echo $views ? $views : &#39;-&#39;; // выводим 0, если просмотров нет
</span></span><span class="line"><span class="cl">			//echo $views;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">			break;
</span></span><span class="line"><span class="cl">		}
</span></span><span class="line"><span class="cl">	}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">}
</span></span></code></pre></div><p>Поправил три строки (выделено жирным).</p>
<p>Всё, получаем колонку в общем списке записей</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-acf-last-change.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-acf-last-change_hu_fd7dddc51403feba.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/it/how-to-sort-posts-in-separate-category/images/wp-acf-last-change_hu_fd7dddc51403feba.webp 640w"
            sizes="100vw"
            width="756"
            height="612"
            
        >
    </a>
    
</figure>
</p>
<p>Если выбрать конкретную рубрику</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-sorm-all-dates.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-sorm-all-dates_hu_3d5f72d15a8d08e9.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/it/how-to-sort-posts-in-separate-category/images/wp-sorm-all-dates_hu_a5a460efa166b4e2.webp 640w, /it/how-to-sort-posts-in-separate-category/images/wp-sorm-all-dates_hu_3d5f72d15a8d08e9.webp 960w"
            sizes="100vw"
            width="998"
            height="260"
            
        >
    </a>
    
</figure>
</p>
<p>то получаем порядок сортировки именно в этой категории</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/it/how-to-sort-posts-in-separate-category/images/wp-acf-order-count.png" data-lightbox-image>
        <img
            src="/it/how-to-sort-posts-in-separate-category/images/wp-acf-order-count.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            width="380"
            height="448"
            
        >
    </a>
    
</figure>
</p>
<p>Профит.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
