Плагин WordPress предоставляется за дополнительную плату, поэтому WordPress необходимо загрузить плагин и управлять им. Это включает в себя чтение каталога плагина, проверку наличия обновлений и поддержание метаданных плагина. Всякий раз, когда я работаю над оптимизацией Martech Zone или установкой WordPress клиента, я всегда анализирую используемые плагины, качество кода, влияние на веб-сайт и функциональность используемого плагина.
Я часто нахожу плагины раздутыми, плохо спроектированными и добавляющими ненужные накладные расходы, которые могут замедлить работу сайта или администратора. Если это простая функция, я обычно удаляю плагин и вместо этого меняю файл function.php дочерней темы. Когда код помещен в дочернюю тему functions.php
файл, он напрямую интегрирован в тему, что может быть немного более эффективным с точки зрения использования ресурсов.
В конечном счете, при выборе также следует учитывать такие факторы, как организация кода, удобство сопровождения и конкретные потребности вашего проекта.
Добавьте столбец избранных изображений в свой список сообщений
Я использовал плагин Martech Zone, который добавлял столбец избранных изображений в список сообщений. К сожалению, плагин оказался немного раздутым из-за ненужных дополнительных настроек и ресурсов, вроде давно удаленного видео. Я скопировал плагин и узнал, как они добавляют столбец изображения… а затем модифицировал плагин, добавив некоторые дополнительные функции, такие как указание заголовка и размеров избранного изображения при наведении курсора мыши.
Вот код:
function add_featured_image_column($columns) {
// Create a new column with the name "img"
$columns['img'] = 'Featured Image';
return $columns;
}
function customize_featured_image_column($column_name, $post_id) {
if ($column_name == 'img') {
// Get the featured image URL
$thumbnail_url = get_the_post_thumbnail_url($post_id, 'thumbnail');
// Check if a featured image is set
if ($thumbnail_url) {
// Get the original image URL
$original_url = get_the_post_thumbnail_url($post_id, 'full');
// Get the dimensions of the original image
list($original_width, $original_height) = getimagesize($original_url);
// Get the actual title
$actual_title = get_the_title($post_id);
// Define the title attribute for the image
$image_title = $actual_title . ' (' . $original_width . 'px by ' . $original_height . 'px)';
// Display the thumbnail image with a maximum height of 80px and add dimensions to the title attribute
echo '<img src="' . esc_url($thumbnail_url) . '" style="max-height: 80px;" title="' . $image_title . '" />';
} else {
// No featured image is set, display "No featured image"
echo 'No featured image';
}
}
return $column_name;
}
add_action('manage_posts_columns', 'add_featured_image_column');
add_action('manage_posts_custom_column', 'customize_featured_image_column', 10, 2);
Вот объяснение кода:
add_featured_image_column
функция:- Эта функция добавляет настраиваемый столбец в список сообщений в панели администратора WordPress. В качестве аргумента он принимает существующий массив столбцов (
$columns
). - Это добавляет новый столбец с именем изображение с этикеткой Популярное изображение.
- Он возвращает массив измененных столбцов с новым. изображение столбец добавлен.
- Эта функция добавляет настраиваемый столбец в список сообщений в панели администратора WordPress. В качестве аргумента он принимает существующий массив столбцов (
customize_featured_image_column
функция:- Эта функция отвечает за настройку контента изображение столбец для каждого элемента в списке.
- Требуется два параметра:
$column_name
(имя текущего столбца для обработки) и$post_id
(идентификатор текущего сообщения). - Он проверяет, является ли текущий обрабатываемый столбец изображение (добавленный нами специальный столбец).
- Если это изображение столбец, он вводит и отображает изображение и дополнительную информацию.
- Оно использует
get_the_post_thumbnail_url
чтобы получить URL-адрес избранного изображения в размере миниатюры. - Он проверяет, установлено ли избранное изображение, проверяя, установлено ли
$thumbnail_url
не пуст. - Если установлено избранное изображение, оно также получает URL-адрес исходного (полноразмерного) изображения и его размеры, используя
get_the_post_thumbnail_url
иgetimagesize
. - Он извлекает фактический заголовок сообщения, используя
get_the_title
. - Он строит
title
Атрибут изображения в формате «Имя: фактическое имя (исходная ширина в пикселях по исходной высоте)». - Он отображает миниатюру с максимальной высотой 80 пикселей и устанавливает атрибут имени в значение создано.
$image_title
. Вы можете изменить эту высоту по своему усмотрению. - Если избранное изображение не установлено, отображается сообщение «Избранное изображение не установлено».
- Функция возвращает измененное содержимое изображение столбец.
add_action
линии:- Эти линии привлекают
add_featured_image_column
функционировать, чтобыmanage_posts_columns
действие иcustomize_featured_image_column
функционировать, чтобыmanage_posts_custom_column
действие. Он связывает эти функции с экраном управления публикациями WordPress.
- Эти линии привлекают
Добавляя эти шаги, код фактически создает новый настраиваемый столбец в списке сообщений администратора WordPress, в котором для каждого сообщения отображается избранное изображение, а также его заголовок и размеры. Если избранного изображения нет, оно отображается Изображение не предоставлено. Это может быть полезным инструментом для управления и просмотра публикаций в области администратора, особенно при работе с темами, которые в значительной степени зависят от избранных изображений.
Вот предварительный просмотр этого в действии в области Martech, где я навел курсор на изображение в третьем ряду:
Фильтровать сообщения, у которых нет избранного изображения.
Еще одной добавленной функцией был фильтр, благодаря которому я мог легко идентифицировать любую публикацию, в которой не было набора избранных изображений.
function add_no_featured_image_filter() {
global $post_type;
// Check if the current post type is 'post' (you can change it to the desired post type)
if ($post_type == 'post') {
$selected = (isset($_GET['no_featured_image']) && $_GET['no_featured_image'] == '1') ? 'selected' : '';
echo '<select name="no_featured_image" id="no_featured_image">
<option value="" ' . $selected . '>All Posts</option>
<option value="1" ' . selected('1', $_GET['no_featured_image'], false) . '>No Featured Image</option>
</select>';
}
}
function filter_no_featured_image_posts($query) {
global $pagenow;
// Check if we are on the posts page and the filter is set
if (is_admin() && $pagenow == 'edit.php' && isset($_GET['no_featured_image']) && $_GET['no_featured_image'] == '1') {
$query->set('meta_key', '_thumbnail_id');
$query->set('meta_compare', 'NOT EXISTS');
}
}
add_action('restrict_manage_posts', 'add_no_featured_image_filter');
add_action('parse_query', 'filter_no_featured_image_posts');
Этот код расширяет функциональность области администрирования WordPress, добавляя к сообщениям настраиваемый фильтр, чтобы пользователи могли фильтровать сообщения в зависимости от того, есть ли у них набор избранных изображений. Вот объяснение кода:
add_no_featured_image_filter
функция:- Эта функция создает раскрывающееся меню настраиваемого фильтра для сообщений в панели администратора WordPress.
- Он начинается с проверки текущего типа сообщения. В этом коде он специально проверяет, является ли текущий тип сообщения «сообщением», но вы можете изменить его на любой тип сообщения, который захотите.
- Если тип сообщения совпадает, создается раскрывающийся список фильтров.
- Раскрывающееся меню фильтра выполнено в формате HTML.
<select>
элемент с именем «no_featured_image» и идентификатором «no_featured_image». - У него есть два варианта:
- «Все новости» (параметр по умолчанию): этот параметр выбирается, если не применяется определенная фильтрация.
- «Нет избранного изображения»: выберите этот параметр, если пользователь хочет фильтровать сообщения, не имеющие избранного изображения.
- Выбор этих опций определяется на основе параметров URL-запроса (
$_GET
) и илиno_featured_image
параметр установлен на «1». -
selected
Функция используется для определения того, следует ли пометить опцию как «выбранную» на основе значений параметров запроса. - Функция повторяет HTML выпадающего списка фильтров.
filter_no_featured_image_posts
функция:- Эта функция изменяет запрос для фильтрации сообщений на основе наличия или отсутствия избранного изображения.
- Сначала он проверяет, что мы находимся в области администрирования WordPress и на странице «edit.php», которая является страницей управления публикациями.
- Затем он проверяет, есть ли
no_featured_image
Параметр запроса установлен на «1», что указывает на то, что пользователь хочет фильтровать сообщения, не содержащие изображения. - Если фильтр активен, он использует
set
метод модификации запроса: - Он определяет
meta_key
к _thumbnail_idключ, используемый для хранения идентификатора избранного изображения в метаданных публикации. - Он определяет
meta_compare
на «НЕ СУЩЕСТВУЕТ», что эффективно отфильтровывает сообщения, в которых метаключ «_thumbnail_id» не существует. Другими словами, он фильтрует сообщения без избранного изображения. - Эта функция корректирует запрос на основе выбора фильтра.
add_action
линии:- Первый
add_action
лесные крючкиadd_no_featured_image_filter
для функции «restrict_manage_posts». Это действие вызывается при отображении раздела управления сообщениями и позволяет добавлять пользовательские фильтры и элементы управления. - Второй
add_action
лесные крючкиfilter_no_featured_image_posts
чтобы функция parse_query работала. Это действие вызывается перед выполнением запроса, что позволяет вам изменить запрос на основе пользовательских фильтров.
- Первый
Вот предварительный просмотр фильтра:

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