如何修复 call_user_func_array() 期望参数 1 是有效的回调,Wordpress 中的函数“my_cpt_single_template”

How to fix call_user_func_array() expects parameter 1 to be a valid callback, function 'my_cpt_single_template' in Wordpress

提问人:danelig 提问时间:1/12/2023 更新时间:1/12/2023 访问量:1030

问:

我正在尝试使用层次结构文件在 WordPress 中的 php 自定义帖子类型模板中运行一些 jQuery: 单事件 .php 文件(在模板顶部添加了 jQuery 的 single-.php):

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

控制台不记录,因此当我加载单个事件页面时,脚本未运行。

我的函数.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/class-wp-hook.php 在线 310

我怎样才能解决这个问题,以便WordPress为CPT UI生成的自定义帖子类型“事件”加载单事件.php模板文件?

非常感谢。

php 回调 wordpress 主题自定义 帖子类型

评论


答:

1赞 Krunal Bhimajiyani 1/12/2023 #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' );

评论

1赞 danelig 1/12/2023
谢谢!这已经解决了这个问题。好地方。我应该意识到的。