Добавить_фильтр только для пользовательских типов страниц

Вопрос или проблема

У меня есть функция add_filter в файле functions.php:

add_filter( 'acf/load_value', 'auto_link_post_titles' );

Я хочу применить это только к определённым типам записей. Это возможно? И если да, то как?

Спасибо.

Ответ или решение

Да, вы можете применить фильтр acf/load_value только к определённым типам записей в WordPress, добавив проверку типа записи внутри функции обратного вызова вашего фильтра. Ниже приведён пример кода, который демонстрирует, как это сделать.

  1. Во-первых, у вас уже есть базовая установка фильтра в файле functions.php:
add_filter( 'acf/load_value', 'auto_link_post_titles' );
  1. Теперь вам нужно изменить функцию auto_link_post_titles, чтобы она проверяла, к какому типу записи применяется фильтр. Вот пример кода:
function auto_link_post_titles( $value, $post_id, $field ) {
    // Получаем объект поста
    $post = get_post( $post_id );

    // Проверяем, является ли пост нужного типа
    if ( $post && in_array( $post->post_type, array( 'custom_post_type_1', 'custom_post_type_2' ) ) ) {
        // Ваш логика для обработки постов здесь
        // Например, вы можете изменить переменную $value
        // ...
    }

    // Возвращаем значение (применяемое для всех постов)
    return $value;
}

add_filter( 'acf/load_value', 'auto_link_post_titles', 10, 3 );

Объяснение кода

  1. Получение поста: Мы используем get_post( $post_id ), чтобы получить объект поста, что позволяет нам получить доступ к полю post_type.

  2. Проверка типа записи: Используем условие in_array( $post->post_type, array( 'custom_post_type_1', 'custom_post_type_2' ) ), чтобы убедиться, что тип записи соответствует одному из перечисленных. Замените 'custom_post_type_1' и 'custom_post_type_2' на ваши собственные пользовательские типы записей.

  3. Обработка значения: Внутри условия вы можете добавить свою логику, чтобы изменять значение $value только для необходимых типов записей.

Заключение

Таким образом, данный код будет применять фильтр только к указанным вами пользовательским типам записей, что улучшит производительность и сделает код более целенаправленным. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...