我正在尝试做一个可以改变主题行为的插件。
在主题文件中, 我有一个get_template_part(‘
libs / templates / user_menu’
);
我想让我的插件”
强制”
get_template_part返回另一个插件文件(插件文件夹中文件的路径)。
到目前为止, 这是我在插件中的代码:
function wpse21352_template_part_cb( $slug )
{
if(slug == 'user_menu') {
return WP_PLUGIN_URL.'/'.$slug;
} else {
return $slug;
}
}do_action( "get_template_part_user_menu", 'user_menu' );
add_action( 'wpse21352_template_part_cb', 'get_template_part_user_menu', 10, 1 );
#1【通过插件劫持get_template_part】首先, get_template_part不返回任何内容。它根据你传递给主题的参数从主题加载文件。该函数不支持过滤, 这意味着你实际上无法覆盖get_template_part输出的内容。
get_template_part_ [slug]操作允许你执行的唯一操作是在加载主题文件之前输出某些内容。例如, 使用
function myplugin_before_login( $slug, $name ) {
echo 'Example';
}add_action( 'get_template_part_login', 'myplugin_before_login', 10, 2 );
在调用get_template_part(‘ login’ ); 时, 将在加载主题文件之前输出” Example” 。
动作和过滤器但是, 总的来说, 我认为你可能会误解操作和过滤器的工作方式。 WordPress Codex提供了有关其用法和用法的广泛信息。
推荐阅读
- 保存/重置主题选项页面时,如何获取备用样式表加载到wp_head中()
- 隐藏”发布的帖子”。在WordPress中查看”发布”管理员通知
- 在WordPress中隐藏/删除自定义帖子类型选项
- 仅使用get_terms获得类别名称
- 获取并显示附带的视频wordpress
- esc_url()和WordPress安全性()
- 根据类别WordPress获取帖子
- 回溯算法小细节
- 独立集与顶点覆盖相互规约问题