繁体   English   中英

将wordpress插件挂钩到单个页面以呈现一些html / javascript内容的最佳方法是什么?

[英]What is the best way to hook wordpress plugin to a single page in order to render some html/javascript content?

我开发了一个WordPress插件,它可以呈现一些动态的html和javascript内容。 我想知道我应该如何修改它,以便它可以挂钩到我的wordpress应用程序中的单个页面。

我的想法是将插件函数绑定到自定义挂钩,并在页面上调用此挂钩,但是,我不知道如何从特定页面调用挂钩。 或者将它挂钩到你想要的页面部分,然后使用条件语句只渲染我是否是正确的页面? 这看起来很烦人,因为我希望能够在任何页面上使用我的插件而无需修改它。 有没有办法可以将所需的页面作为参数传递给它?

我正在寻找“最佳实践”解决方案,所以如果问题有点宽泛我会道歉。

如果这是一个公共插件,您将无法“烘焙”它应该显示的页面/帖子。

你要么需要:

1)添加某种选项页面。 有关更多信息,请查看选项页面文档

2)将Meta Box添加到您希望它应用于的帖子类型中,其中有一个选项,用于在帖子上设置元值。

根据提供的信息,我倾向于#2,然后您可以检查是否设置了元值,如果是,则显示您的插件的代码:

if( is_single() && get_post_meta( get_the_ID(), 'run_amin_hakem_plugin', true ) == true ){
    // Do your thing        
}

然后,您可以将上面的代码添加到适当的钩子中,例如wp_headwp_footer ,或者应该显示输出的位置。

有多个钩子可以帮助您渲染所需的html / js。 首先想到的是

  1. wp_head
  2. wp_footer
  3. the_content
  4. the_title

如果有侧边栏,您可以添加窗口小部件控件插件并在特定页面上显示窗口小部件。

如果您最终使用上述任何钩子或任何其他钩子,您可以使用以下之一进行条件检查:

  1. is_page_template \\假设您知道正在使用的自定义模板。
  2. is_page \\您需要知道页面ID / slug或标题

然后有许多检查将检查它是否正在加载single.php或任何分类法等。

希望这能回答你的问题。

这应该是基于帖子ID定位的一个很好的例子

add_action( 'the_content', 'my_override_function' );
function my_override_function($content) {
    global $post;
    if ($post->ID == 123) {
        return 'Hello my friend<br>'.$content;
    } else {
        return $content;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM