Я пытаюсь запустить некоторый 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 пользовательского типа сообщения «событие»?
Очень признателен.
Я думаю, что эта ошибка возникает из-за того, что имя вашей функции отличается.
Вам нужно изменить имя функции в хуке, чтобы оно соответствовало тому, которое вы определили.
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' );
Спасибо! Это решило проблему. Хорошее место. Я должен был понять.