小编Bri*_*n C的帖子

Wordpress插件生成虚拟页面和使用主题模板

我需要能够基于像http://www.mycinema.com/wpcinema/movie/MOVIEID这样的网址生成虚假/虚拟/动态页面,以便能够显示电影中的电影以及有关电影和直播的信息会话提要信息.

在花了很多时间研究之后,似乎没有太多关于如何在WordPress中编写虚拟页面的内容,所以我会在解决之后写下我的经验!

到目前为止,目前的计划是使用两个过滤器 - template_redirect将模板设置为当前插件的page.php模板,并使用the_content来插入内容.我们的想法是使用主题的模板,使页面主题与网站一致.

(我从Xavi Esteve的这个优秀的2012年页面获得了这种方法).

我有两个问题:

  1. 这样做的最好,最防弹的方法是什么?我使用了错误的方法吗?我的想法是,使用当前主题的模板可能会提供最适合网站风格的模板.

  2. TwentyTwelve似乎没有在我正在使用它的上下文中调用the_content过滤器.我怀疑我做错了什么,但找不到问题.这可能与问题1密切相关.TinntyTwelve肯定会调用the_content作为普通页面,甚至早期的add_filter()也不会在我的代码中触发.

我昨天发现了get_template_part()并且想知道我是否应该使用它而不是手动查看子文件夹然后是父文件并运行包含.

我不会问,但是我的机智已经广泛​​搜索,可能是因为错误的搜索条件.

我考虑过自定义帖子类型,但是这有很多复杂性(包括每隔几分钟可能会改变的内容),这意味着动态生成的页面效果要好得多.

这是我编写的代码的摘录,用于进一步解释问题:

add_action('parse_request', array(&$this, 'vm_parse_request'));

function vm_parse_request( &$wp )
{
    global $wp;
    if (empty($wp->query_vars['pagename']))
        return; // page isn't permalink

    $p = $wp->query_vars['pagename'];

    if (! preg_match("#wp-cinema/movie/([^/]+)#", $p, $m))
        return;

    // setup hooks and filters to generate virtual movie page
    add_action('template_redirect', array(&$this, 'vm_template_redir'));
    add_filter('the_content', array(&$this, 'vm_the_content'));
}

function vm_template_redir()
{
    // Reset currrently set 404 flag as this is a plugin-generated page
    global $wp_query;
    $wp_query->is_404 = …
Run Code Online (Sandbox Code Playgroud)

wordpress virtual plugins templates themes

12
推荐指数
1
解决办法
9054
查看次数

标签 统计

plugins ×1

templates ×1

themes ×1

virtual ×1

wordpress ×1