나는 이것에 꽤 충격을 받았다. 플러그인 클래스 내에서 add_action을 사용하여 헤드, wp_ajax 등에 스크립트 및 스타일을 추가합니다. __construct의 동작은 다음과 같습니다.
function __construct(){
add_action('admin_menu', array($this, 'sph_admin_menu'));
add_action('sph_header', array($this, 'sph_callback'));
add_action('sph_header_items', array($this, 'sph_default_menu'), 1);
add_action('sph_header_items', array($this, 'sph_searchform'), 2);
add_action('sph_header_items', array($this, 'sph_social'), 3);
//Below here they don't work. I have to call these outside of the class (but I need class variables within the functions)
add_action('wp_print_styles', array(&$this, 'sph_stylesheets'));
add_action('wp_print_scripts', array(&$this, 'sph_scripts'));
add_action( 'wp_ajax_nopriv_add_to_list', array(&$this, 'le_add_to_list'));
add_action( 'wp_ajax_add_to_list', array(&$this, 'le_add_to_list'));
add_action('init', array(&$this, 'register_menu'));
}
아무도 이런 것을 본 적이 있습니까? 클래스 내에서 후크를 사용하는 방법을 정말로 알고 싶습니다. 클래스 외부에서 조치를 취하는 것이 지저분합니다!
또한 후크 역할을하는 기능에
—
Joseph Leedy
public
가시성 이 있는지 확인하십시오 .
Bainternet 네 맞습니다. @Joseph 그게 될 수 있습니다. 건설 할 수 있습니까? 건배
—
할리
@Harley-bainternet은 인스턴스를 어디에서 만들지 묻고있었습니다 .
—
Stephen Harris
@Harley 가시성 수정자를 포함하지 않으면 자동으로 public으로 설정됩니다. 나는 실제 기능을 언급하고 있었지만 어떤 행동을하고 있는지를 수행했습니다.
—
Joseph Leedy
$my_plugin = new MYClass();
클래스에서 문제없이 동일한 후크를 사용했기 때문에.