WordPress+ACF сортировка и вывод записей с фильтром по произвольным полям. Wordpress сортировка записей по дате


Сортировка типичных записей | WordPress.org

Свыше 2.5 МИЛЛИОНОВ СКАЧИВАНИЙ и близкий к ПРЕВОСХОДНОМУ рейтинг от более 200 отзывов. Полезный плагин Порядок Записей и типичных Объектов использующий Drag and Drop сортировку JavaScript.

Эту сортировку можно настроить на странице WordPress список архива типичных записей по-умолчанию или отдельном интерфейсе изменения порядка, который отображает все объекты.Позволяет изменять порядок записей для любых произвольных типичных записей, которые вы определили, включая записи по-умолчанию. Также вы можете отображать записи в интерфейсе администратора, отсортированные по вашему предпочтению. Сортировка записей никогда не была такой простой.

Применение

This was built considering everyone to be able to use the sorting, no matter the WordPress experience:

Пример использования

Как видите, перетаскивани

ru.wordpress.org

Сортировка записей по произвольному полю в административном разделе WordPress

<?php

/*  Добавляем нижеописаную функцию к хуку restrict_manage_posts */

add_action( 'restrict_manage_posts', 'custom_restrict_manage_posts__show_field' );

 

/*  Описание функции, которая выводит в админке поле  */

function custom_restrict_manage_posts__show_field(){

 

    /*  post_type по-умолчанию или из GET */

    $type = 'post';

    if (isset($_GET['post_type']))

        $type = $_GET['post_type'];

    

    /*  Если post_type "product" */

    if ($type == 'product'):

 

        /*  Указываем значения для выпадающего списка */

        $values = array(

            'В наличии' => 'in_stock',

            'Продано'   => 'sold',

        );

        ?>

        <select name="status">

            <option value="">Все статусы</option>

            <?php

                $current_v = isset($_GET['status'])? $_GET['status']:'';

                foreach ($values as $label => $value) :

                printf

                    (

                        '<option value="%s"%s>%s</option>',

                        $value,

                        $value == $current_v ? ' selected="selected"':'',

                        $label

                    );

                endforeach;

            ?>

        </select>

    <?php

    endif;

}

 

 

 

/*  Добавляем нижеописаную функцию к хуку parse_query */

add_filter( 'parse_query', 'custom_posts_filter' );

 

/*  Описание функции, которая фильтрует данные   */

function custom_posts_filter( $query ) {

    

    global $pagenow;

    $type = 'post';

 

    if (isset($_GET['post_type']))

        $type = $_GET['post_type'];

    

    $query->query_vars['meta_value'] = $_GET['status'];

    

}

dmitriyilichev.com

Изменения сортировки вывода записей WordPress

Если в настройках WordPress вы указали вывод последних записей на главной странице, то они по умолчанию всегда будут сортироваться по дате. То есть, все новые записи окажутся в начале списка, а старые – в конце.

Это очень удобно для сайта, оформленного в стиле блога. Но бывает необходимость сортировать записи на сайте иначе – по алфавиту.

Для чего понадобится вывод записей WordPress по алфавиту

Если вы ведёте обычный блог, и пишите там свои статьи, то вывод записей по дате добавления вполне подойдёт вам. Но, допустим, если у вас какой-то энциклопедический, справочный сайт, то вряд ли вам понадобиться выводить материалы по дате. В таком случае лучше всего организовать алфавитную сортировку.

На сайтах, организованных в справочном или энциклопедическом стиле вывод записей WordPress практичнее будет организовать в алфавитном порядке. Таким образом, пользователю, зная, что именно он ищет, не придётся лопатить все страницы вашего сайта и пользоваться формой поиска, в которую он может записать запрос не правильно. Он просто перейдёт на ту страницу, где располагается нужная ему буква алфавита.

Вывод записей на WordPress в алфавитном порядке будет значительно удобнее, чем по дате на сайтах многих видов и тематик.

Как сделать вывод записей WordPress по алфавиту

На WordPress вывод записей по алфавиту делается, как обычно, с помощью плагина, который называется WP Post Sorting. Найти его можно на сайте разработчика или в хранилище плагинов в панели администратора.

После установки и активации вам будут доступны настройки плагина, которые появляются в пункте «Записи» – «Post Sorting».Здесь вы можете управлять сортировкой записей на вашем сайте. Следует заметить, что плагин чрезвычайно гибкий и простой в управлении. Так, он позволяет менять сортировку на главной странице – по дате, по алфавиту во всех направлениях. Также можно менять сортировку записей и на страницах рубрик.

Примечательно то, что плагин WP Post Sorting. Позволяет изменять вывод записей WordPress на всех страницах или рубриках сайта независимо друг от друга. То есть на одной может быть по названию, на другой по дате.

Именно поэтому данное решение является самым лучшим для этой задачи.

Если вы заинтересовались выводом записей на своём сайте на WordPress по алфавиту, то вам должно быть также интересно то, как организовать алфавитный указатель. Об этом мы писали тут.

Если вы нашли ошибку, то выделите её и нажмите клавиши Shift + Enter или нажмите сюда, чтобы проинформировать нас.

Также по этой теме:

wpuroki.ru

Wordpress+ACF сортировка и вывод записей с фильтром по произвольным полям — Web-Diz.com

Задача: вывести записи с сортировкой по дате указанной в произвольном поле плагина ACF.

Представим, у вас много записей, каждая запись имеет поле datepicker и вам нужно вывести на главной странице последние записи, но не по дате публикации записи вордпресса, а по дате, указанной в datepicker плагина ACF. Используем следующий код:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<?

$args = array(

'meta_key' => 'datepicker', // ключ поля ACF

'orderby' => 'meta_value_num',

'showposts' => '5', // кол-во выводимых записей

'cat' => '14', // ID категории, откуда вывести записи

'order' => 'ASC' // Порядок сортировки записей

);

$the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) { ?>

// start

<?php while ( $the_query->have_posts() ) { $the_query->the_post(); ?>

// вывод одной записи

<?php } ?>

// end

<?php } else { ?>

<?php } ?>

<?php wp_reset_postdata(); ?>

Сортировка и вывод записей в категории по значению произвольного поля ACF. Для того, чтобы отсортировать все записи указанной категории не по дате публикации записи вордпресс, а по значению произвольного поля ACF у записи, добавил нижеприведенный код в файл functions.php вашей темы:

// Сортировка и вывод записей категории по значению произвольного поля ACF

add_action('pre_get_posts', 'my_pre_get_posts', 10, 1);

function my_pre_get_posts($query)

{

    if ($query->query['category_name'] == 'blog') { // вместо 'blog' указываем ID нужной категории

        $query->set('orderby', 'meta_value_num');

        $query->set('order', 'DSC'); // порядок сортировки

    }

    if ($query->query['category_name'] == 'events') { // вместо 'events' указываем ID нужной категории

        $query->set('meta_key', 'datepicker'); // сортировка по произвольному полю

        $query->set('orderby', 'meta_value_num');

        $query->set('order', 'ASC'); // порядок сортировки

    }

    $query->set('meta_query', $meta_query);

}

web-diz.com


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта