Plugin as custom page

时间:2015-01-25 作者:e_scape

我是wordpress中的begginer(但不是PHP中的begginer),我想用这个url www.example作为插件创建自定义搜索页面。tld/图书搜索。这将是一个从图书馆系统(其他数据库)中搜索书籍的简单页面。我希望自定义页面只能通过编辑php文件进行编辑(删除页面的唯一方法是删除插件)。

创建此自定义php页面的最简单方法是什么?我认为这样的事情是可能的,但我没有找到解决方案:创建定制php page book\\u search。php和插件主文件只需将此url(www.example.tld/book search)转发到此文件。

我在drupal中制作了这个插件,它非常简单(需要几行代码来实现),所以我希望在wordpress中也能有类似的功能。

如果有任何提示,我将不胜感激

2 个回复
最合适的回答,由SO网友:gmazzap 整理而成

如果你的插件必须completely 控制页面的输出,即不考虑活动主题或其他已安装的插件,这样就可以简单地阻止WordPress处理该url。

例如:

add_action(\'init\', function() {

  if (trim(add_query_arg(array()), \'/\') === \'book-search\') {

     require_once plugin_dir_path( __FILE__ ) . "pages/book-search.php"; 
     exit();
  }

});
add_query_arg() 用于获取相对于主url的当前查看url。

如果查看的url就是您要查找的url,那么我需要从插件文件夹中获取一个特定的php文件。

那个文件,pages/book-search.php 应包含all 输出页面内容的代码。

如果你的目标是将一些内容与活动主题相结合,那么事情就更复杂了。

看看this answer 这解释了如何使用插件创建虚拟页面。

在您的情况下,在该答案中使用您必须使用的代码setContent() 函数更改显示内容。

另一种方法是使用短代码,但在这种情况下,您不能选择url。

SO网友:Rarst

常见选项如下:

提供shortcode 在页面内容中使用page template, 不幸的是,需要在主题中,WP确实不喜欢让插件这样做endpoint.

结束

相关推荐