如何在类方法中调用普通函数

时间:2018-02-13 11:47:07

标签: php wordpress function

我在plugin_dir_path( __FILE__ ) . 'admin/partials/absb_bt_to_s-admin-display.php'内有一个正常的功能 show_slider_form_input()。以下是absb_bt_to_s-admin-display.php上的完整代码:

<style type="text/css">
.clearfix:after {
    content: '';
    display: block;
    clear: both;
}
</style>
<?php 

function show_slider_form_input(){?>
<div class="row form-group clearfix" >
    <div style="width: 20%; float: left; margin-right: 1%;">
        Image : <input type="file" name="image[]"  />
    </div>  
    <div style="width: 27%; float: left; margin-right: 1%;">
        Title : <input type="text" name="title[]" />
    </div>

    <div style="width: 22%; float: left; margin-right: 1%;">
        More Info : <input type="text" name="more_info[]" />
    </div>

    <div style="width: 22%; float: left; margin-right: 1%;">
        Button : <input placeholder="Put the url.." type="text" name="button_link[]" />
    </div>
    <div style="width: 5%; float: left; ">
        <input type="button" class="button button-primar add_more"  value="+" />
    </div>
</div>

<?php }

现在我在类Absb_bt_to_s {} 的名为new_slider_html的方法中调用此函数,如下所示:

public function new_slider_html(){
    include( plugin_dir_path( __FILE__ ) . 'admin/partials/absb_bt_to_s-admin-display.php');
    if( !check_ajax_referer( 'absbBtToS-nonce', 'security' ) ){
        wp_send_json_error('error!');
    }
    show_slider_form_input(); 
}

但我得到500错误。当我删除 show_slider_form_input(); 时,一切看起来都不错。在我看来,这个函数是从类中的函数调用的。但是如何弄清楚这个问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以做的是在早期plugins_initinit wp挂钩上注册您的功能,或在运行预定义功能之前添加function_exists

P.S。 所以你包括html(css代码),它也包含你的功能。那么当它失败你试图输出json?我想你需要再次检查你的逻辑。

我最好的建议是从include文件中删除函数包装器并更改调用函数

public function new_slider_html(){
    if( !check_ajax_referer( 'absbBtToS-nonce', 'security' ) ){
        wp_send_json_error('error!');
    }
    include( plugin_dir_path( __FILE__ ) . 'admin/partials/absb_bt_to_s-admin-display.php'); 
}