Как исправить call_user_func_array(), который ожидает, что параметр 1 будет допустимым обратным вызовом, функция my_cpt_single_template в Wordpress

Я пытаюсь запустить некоторый jQuery внутри пользовательского шаблона типа сообщения php в WordPress, используя файл иерархии: файл single-event.php (справился с single.php с добавлением jQuery вверху шаблона):

<script>
jQuery(document).ready(function($) {
    var hexColor = '<?php the_field("event_main_color") ?>';
    $(".event-box-background").css("background-color", hexColor);
    console.info('Working');
});
</script>  

Консоль не ведет журнал, поэтому сценарий не запускается, когда я загружаю одну страницу события.

У меня есть этот код в моем файле functions.php:

function my_cpt_event_template($single_template) {
global $post;
if ($post->post_type == 'event') {
$single_template = dirname( __FILE__ ) . '/single-event.php';
}
return $single_template;
}

add_filter( 'single_template', 'my_cpt_single_template' );

И я получаю эту ошибку при посещении одного пользовательского типа сообщения:

Предупреждение: call_user_func_array() ожидает, что параметр 1 будет допустимым. обратный вызов, функция «my_cpt_single_template» не найдена или недействительна имя функции в /public_html/wp-includes/класс-wp-hook.php на линии 310

Как я могу исправить это, чтобы WordPress загружал файл шаблона single-event.php для созданного пользовательского интерфейса CPT пользовательского типа сообщения «событие»?

Очень признателен.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что эта ошибка возникает из-за того, что имя вашей функции отличается.

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

function my_cpt_single_template( $single_template ) {
    global $post;
    if ( $post->post_type == 'book' ) {
        $single_template = dirname( __FILE__ ) . '/single-event.php';
    }
    return $single_template;
}
add_filter( 'single_template', 'my_cpt_single_template' );

Спасибо! Это решило проблему. Хорошее место. Я должен был понять.

danelig 12.01.2023 11:32

Другие вопросы по теме