将定制的PHP输出挂接到WP:如何做到这一点,parse_REQUEST几乎有效,但并不完全有效

时间:2012-03-08 作者:user13955

我是wordpress的新手,所以很可能我在这里遗漏了一些非常基本的东西。

我正在尝试编写一个插件,它使用自定义PHP代码生成输出。我设法在管理方面实现了这一点,但在用户方面,我却找不到一个正常工作的解决方案。

我成功地找到了以下两个挂钩:

add_action (\'parse_request\', \'myPluginFunc\');
add_action (\'wp\', \'myPluginFunc\');
当我调用索引时。php?MyPlugin=myPluginFunc这在调用myPluginFunc()的意义上起作用,它的输出会回显到屏幕上,但是输出会放在主主题输出区域的上方(顶部黑色WP菜单栏的正下方)。

那么:如何在页面的主显示区域显示自定义PHP函数生成的输出(输出不是帖子)?我使用什么挂钩来实现这一点?

任何指点都将不胜感激。

问候/感谢罗伯特

1 个回复
SO网友:Chip Bennett

将此类插件输出直接添加到模板中最常见的两种方法是:

使用主题提供的动作挂钩,指示用户手动将插件函数调用添加到模板中,有些主题(虽然不是很多)在模板中提供自定义动作挂钩,您可以使用这些挂钩输出插件内容。

例如,在我的葡萄酒学主题中,我有一个oenology_hook_loop_before 动作挂钩,可以在插件中使用:

<?php
function wpse44952_add_loop_before_hook() {
    myPluginFunc();
}
// Hook into Oenology template
add_action( \'oenology_hook_loop_before\', \'wpse44952_add_loop_before_hook\' );
?>
但请注意,这种挂钩并没有标准化。任何提供此类挂钩的主题都将使用自己的命名约定。因此,您必须添加add_action() 要求您支持每一个这样的主题。

另一种常见的方法是简单地要求用户添加myPluginFunc() 在需要输出的任何地方手动输入模板。虽然不太理想,但最终用户也相当习惯于使用其他插件(如WP PageNavi)。

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴