Wordpress中类内部带有$this的Action Hook



我正试图在插件中的类Sensei_media_Attachments内的"display_attached_media"中创建一个钩子Sensei LMS媒体附件,以在我的函数中使用在自定义位置激活它。hp:

add_action( 'custom_action', array( $this, 'display_attached_media' ), 35 );

但我得到了以下错误:

致命错误:未捕获错误:不在对象上下文中时使用$this

插件示例:

class Sensei_Media_Attachments {
private static $instance = null;
private $assets_dir;
private $assets_url;
private $token;
public function frontend_hooks() {
// Media files display.
add_action( 'sensei_single_lesson_content_inside_after', array( $this, 'display_attached_media' ), 35 );
add_action( 'sensei_single_course_content_inside_before', array( $this, 'display_attached_media' ), 35 );
} }

当在类中使用时,它运行良好,但我不想编辑插件文件。


更新

当我遵循@disifor的建议时,Uncaught Error: Using $this when not in object context在第226行从functions.php更改为class sensei media attachments.php,所以我做了一些研究并发现了问题。在函数display_attached_media中,我有一个基于$this的调用,所以我用self::替换了它,一切都很好。

但是,有人知道我们是否有另一个来修复它,而不是更改插件代码吗?

不能在类外使用$this。请将行动称为

add_action( 'custom_action', 'display_attached_media', 35 );

在您的主题功能中。php

相关内容

最新更新