加载URL模式的模板

时间:2015-11-12 作者:roshan

我正在为事件和csr事件自定义帖子类型创建库页面。

现在它有三种类型的页面:

www.example。com/gallery www.example。com/gallery/events www.example。com/gallery/csr事件我已经使用wp\\u insert\\u post通过编程为上述slug创建了页面:事件库示例:

    wp_insert_post(
        array(
            \'comment_status\' => \'closed\',
            \'ping_status\' => \'closed\',
            \'post_author\' => 1,
            \'post_parent\' => $page[\'parent\'],
            \'post_name\' => $page[\'slug\'],
            \'post_title\' => $page[\'title\'],
            \'post_status\' => \'publish\',
            \'post_type\' => $page[\'post-type\'],
            \'page_template\' => $page[\'template\'],
        )
    );
因此,页面名称是gallery、events和csr events。

我已将gallery设置为父页,将events和csr events设置为gallery的子级。

然后在模板库中。php我检查$wp_query->query_vars[\'pagename\']这给了我画廊或事件或csr事件。基于此,我编写了一个查询来获取图像。

我已经为这3个图库页面创建了一个存档列表,方法是在this plugin 以以下格式返回URL:

  1. http://www.example.com/gallery/2015/09
  2. http://www.example.com/gallery/events/2015/08
  3. http://www.example.com/gallery/csr-events/2015/09
  4. 对于具有自定义帖子类型的其他存档页面,它将返回:http://www.example.com/events/2015/09
和我修改了插件的重写规则,该规则适用于其他自定义帖子类型,但不适用于库页面:

$line_separated = implode( \'|\', $post_types );//works for events/
$newrules[\'(\' . $line_separated . \')/(\\d*)/(\\d*)$\'] = \'index.php?post_type=$matches[1]&m=$matches[2]$matches[3]\';
我应该在这里使用什么重写规则http://www.example.com/gallery/events/2015/08 工作。

我试过这个

$newrules[\'gallery/events/(\\d*)/(\\d*)$\'] = \'index.php?pagename=events&m=$matches[1]$matches[2]\';
但它只是加载库/事件并删除年份和月份,我可以使用哪些重写规则加载事件页面并保留url,以便在m .

注意:此处的gallery不是自定义帖子类型。这只是一页。

1 个回复
SO网友:Milo

要确定要使用的最佳过滤器,必须确定这些页面是什么。是is_page() 符合事实的使用page_template 滤器是is_post_type_archive() 符合事实的使用archive_template 滤器

All of the query type-specific template filters are listed here.

也可以使用泛型template_include, 所有类型的火灾。

在这些过滤器中,您可以检查相同的条件,以确定是否需要加载template-gallery.php 样板

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?