Плагин 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).
    • Это добавляет новый столбец с именем изображение с этикеткой Популярное изображение.
    • Он возвращает массив измененных столбцов с новым. изображение столбец добавлен.
  • 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.
ЧИТАТЬ  5 фильмов, покинувших Netflix в декабре, которые нужно посмотреть | Цифровые тенденции

    Добавляя эти шаги, код фактически создает новый настраиваемый столбец в списке сообщений администратора 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 работала. Это действие вызывается перед выполнением запроса, что позволяет вам изменить запрос на основе пользовательских фильтров.
    ЧИТАТЬ  «Последний звонок в Стамбул» от Netflix кажется идеальным фильмом, который поможет мне избавиться от засухи в романтической драме.

      Вот предварительный просмотр фильтра:

      Фильтр списка новостей для избранного изображения

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

Source