如何正确覆盖Wordpress中的类方法?

时间:2017-06-07 12:16:03

标签: php wordpress

如何正确覆盖此类preview_handler()的类方法,是否可以在子类中创建它?

class WP_some_class {

public function __construct() {
add_action( 'wp', array( $this, 'process' ) );

$this->steps  = (array) apply_filters( 'submit_job_steps', array(
    'submit' => array(
        'name'     => __( 'Submit Details', 'wp-job-manager' ),
        'view'     => array( $this, 'submit' ),
        'handler'  => array( $this, 'submit_handler' ),
        'priority' => 10
        ),
    'preview' => array(
        'name'     => __( 'Preview', 'wp-job-manager' ),
        'view'     => array( $this, 'preview' ),
        'handler'  => array( $this, 'preview_handler' ),
        'priority' => 20
    ),
    'done' => array(
        'name'     => __( 'Done', 'wp-job-manager' ),
        'view'     => array( $this, 'done' ),
        'priority' => 30
    )
) );

public function preview_handler() {
    // .. some code
}

}

1 个答案:

答案 0 :(得分:0)

您可以简单地扩展课程。

class Extending_class extends WP_some_class
{
    public function preview_handler()
    {
        // Your code
    }
}

请注意,您必须保留与原始类相同的方法参数(在本例中不是任何人)。

来自PHP documentation

  

[...]扩展类时,子类从父类继承所有公共和受保护的方法。除非某个类重写这些方法,否则它们将保留其原始功能。