gpt4 book ai didi

php - Wordpress 自定义钩子(Hook)

转载 作者:行者123 更新时间:2023-12-02 05:00:55 24 4
gpt4 key购买 nike

问题在于我不了解 WordPress 的结构(这是我第一次使用 WP),应该紧急解决该任务。我为非流行的 openID 提供商之一开发了一个用于 openID 授权的插件。我开发了插件,就好像它在“init”钩子(Hook)上调用主函数一样。因此,任何未经授权的用户都无法访问网站的任何页面。但任务是我的索引页面上必须有“授权”链接,并且必须在单击此链接后立即执行授权。我尝试使用自定义钩子(Hook)解决问题。

我在我的插件主文件中添加了以下内容(它是一个类函数)

public function m_authenticate(){
do_action('m_authenticate');
}

比添加了这样的 Action
add_action('m_authenticate', array(&$this, 'mAuthenticate'), 7);

这里 mAuthenticate是一个重定向到 openID 提供者进行身份验证的函数。
之后我用这个钩子(Hook)创建了一个 php 脚本
<?php
m_authenticate();

但是在浏览器调用这个脚本时,会出现脚本找不到函数 m_authenticate()的错误。 .如果我需要其中 m_authenticate() 的脚本已定义,则此脚本的其他行会发生错误,例如 cannot find function在线的
register_activation_hook( __FILE__, array('some_func', 'addNewWordPressAdmin')); 

请帮助建议如何使用此 openID 功能制作单独的页面。任何帮助将不胜感激。

最佳答案

这是解决此问题的一种方法。在这里你有这个类的插件:
<?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();
在主题结构中,我将钩子(Hook)放在 header.php :
<?php if(class_exists('MyAuthHookClass')) MyAuthHookClass::m_authenticate(); ?>

关于php - Wordpress 自定义钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16412374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com