2017-09-02 65 views
0

我的插件制作了一个交互式图像,我想通过iframe分享它。有没有一种正确的方式来实现一个wordpress插件的独特url的特殊页面。目前我使用页面模板,但它并不那么友好。 我想要类似 www.site.com/myplugin/id=123 & param = 123 - 向我显示一个特殊页面,用于呈现我的插件在前端。WordPress插件专页

回答

1

您可以挂接到parse_request行动WordPress的呈现之前的任何页面,如下所示:

function so_46014733($query) { 
    if (
     isset($_GET['id']) 
     && isset($_GET['param']) && 
     '123' === $_GET['id'] && 
     '123' === $_GET['param'] 
    ) { 
     include_once 'my_custom_page.html'; 
     exit; 
    } 
    return $query; 
} 
add_action('parse_request', 'so_46014733'); 

有几件事情需要注意:

  • 如果这将立即返回默认$queryidparam是空的(对此检查几乎没有性能影响)。
  • 这假设你想要渲染自己的HTML页面(或者甚至包含自己的代码的PHP页面),如果idparam匹配你的密钥。
  • 如果你打算使用$_GET变量什么,请务必先清理它们像这样:

    $id = absint(wp_unslash($_GET['id']));

+0

感谢答案,我将测试这种方式。 – Avirtum