问题出现的原因是我不知道WordPress的解剖结构(这是我第一次使用WP),任务应该紧急解决。我为一个非流行的openID提供程序开发了一个openID授权插件。我开发了插件,好像它在'init'钩子上调用main函数。因此,没有任何非授权用户可以访问任何网站页面。但任务是我必须在我的索引页面上“授权”链接,并且必须在点击此链接后立即执行授权。我尝试使用自定义钩子解决问题。
我在我的插件主文件中添加了以下内容(它是一个类函数)
public function m_authenticate(){
do_action('m_authenticate');
}
比添加了那样的行动
add_action('m_authenticate', array(&$this, 'mAuthenticate'), 7);
此处mAuthenticate
是一个重定向到autid的openID提供程序的函数。
之后我用这个钩子创建了一个php脚本
<?php
m_authenticate();
但是在通过浏览器调用此脚本时,会发生一个错误,即脚本无法找到函数m_authenticate()
。如果我需要定义m_authenticate()
的脚本,那么它与该脚本的其他行发生错误,例如cannot find function
在线
register_activation_hook( __FILE__, array('some_func', 'addNewWordPressAdmin'));
请帮助建议如何使用此openID功能创建单独的页面。任何帮助将不胜感激。
答案 0 :(得分:0)
这是解决此问题的一种方法。这里有一个类的插件:
<?php
/* Plugin Name: WP Test */
class MyAuthHookClass {
public function __construct() {
add_action('m_authenticate', array( $this, 'mAuthenticate') );
}
public function mAuthenticate() {
echo "<h1>My Auth</h1>";
}
public static function m_authenticate(){
do_action('m_authenticate');
} }
new MyAuthHookClass();
在主题结构中,我把钩子放在header.php
:
<?php if(class_exists('MyAuthHookClass')) MyAuthHookClass::m_authenticate(); ?>