Як вивести в записі колонку з довільним полем і зробити по ньому сортування

Стаття із зірочкою, для тих хто вже працює "Як вивести в записі колонку з довільним полем і зробити по ньому сортування"

Часто ми робимо довільні поля та довільні типи, які потрібні для розробки, але іноді потрібно зробити клієнту приємно та налаштувати виведення цього поля в окрему колонку панелі адміністратора, а ще краще якщо клієнт зможе сортувати цю колонку за переглядами та робити свій аналіз відвідуваності, не заходячи в google analytics або метрику.

Як зробити додатковий стовпчик у списку постів WordPress та налаштувати по ньому сортування.

Для початку вам потрібен буде фільтр manage_{$екран->id}_sortable_column замість $screen->id вам буде необхідно вказати ім'я типу даних, нижче ви побачите на прикладі це.

Фільтр передає масив з іменами сортованих стовпців як ключі, та дані для виведення як значення. Параметр “orderby” вказує, для яких стовпців буде включено сортування. Також ви можете вимкнути сортування для певних стовпців “unsortable”.

Ясно все буде розглянути на прикладі створення стовпця

Фільтр керувати стовпцями_дописів викликає функцію posts_column_views() яка створює колонку Views для типу даних, тип даних правильно вказувати у назві функції manage_{post_type}_стовпці.

Екшен management_posts_custom_column викликає функцію posts_custom_column_views() яка відповідає за заповнення нового стовпця даними. У назві екшену ми можемо також бачити вказаний тип даних manage_{post_type}_спеціальний_стовпець. Ми можемо бачити що функції заповнення викликається інша функція яка передає їй дані getPostViews().

Розглянемо функцію getPostViews()

Функція визначає 2 змінні $count_key та $count. У змінну $count_key ми вклали назву майбутнього довільного поля, яке буде зберігати кількість переглядів сторінки. У змінну $count ми отримуємо старий вміст довільного поля.

Якщо в змінну $count ми отримали порожнє значення або вона, швидше за все, просто не існує. Якщо змінна виявилася порожньою, ми створюємо кастомне поле для поточного посту і вкладає в нього нульове значення “0 View”.

Функція, яка збільшує показник переглядів на 1 під час перегляду сторінки

Далі для того, щоб додавати нові значення було б чудово вкласти в код шаблону, у файл single.php, оскільки саме він відповідає за виклик функції у записах типу Post.

На початку функції ми оголошуємо змінні, про які говорили раніше, тому що в них зберігатися читайте вище.

Далі якщо лічильник не створено, функція його створює та кладе перше значення у довільне поле лічильника. Якщо змінна $count не порожня, то ми беремо її значення і збільшуємо його на 1.

Якщо ви це все зробите, то зможете бачити нову колонку у розділі записів, у панелі адміністратора з кількістю переглядів, вона буде заповнена якщо запис був перегляд.

Додаємо сортування до колонки у WordPress

Далі ми розглянемо приклад коду для цього випадку, але якщо ви вчитаєтеся і розберетеся, то зможете додати сортування для будь-якої колонки.

Фільтр manage_edit-post_sortable_columns вказує, що наша колонка може сортуватися. Нижче я додав закоментований рядок коду, за допомогою якого ви можете навпаки відключати сортування потрібного рядка.

В екшені pre_get_posts я викликаю функцію my_view_orderby(). Розглянемо її рядково.

  1. Спочатку ми перевіряємо, чи був користувач залогінений.
  2. Якщо користувач залогінений, Я надаю запит параметра "orderby".
  3. Якщо параметр “orderby” повернув назву нашої колонки “post_views”, то ми вказуємо за яким довільним полем сортувати і той момент, що сортування має бути за числовими даними.

Пробуйте та пишіть про досягнення у коментарі, буде цікаво знати вашу думку про урок. Ось так вийшло у мене.

Как вывести в записи колонку с произвольным полем и сделать по ней сортировку


Купити хостинг WordPress
/* Репетитор по wordpress
Послуги репетитора онлайн. Список курсів, які я веду
  • Базовий курс з веб-дизайну;
  • Верстка сайтів;
  • Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
  • Розробка сайтів на PHP.
Докладніше читайте на сторінці репетитор по WordPress
*/

Ніколаєнко Максим

Директор веб-студии ProGrafika. Займаюсь розробкою, дизайном та просуванням веб-сайтів. Завжди радий новим читачам блогу та добрим клієнтам.


Вам також може сподобатися...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.

Шаблони для WordPress
Найкращий хостинг в Україні
Стабільний хостинг для Drupal