根据URL选择模板

时间:2012-11-24 作者:Dreamingof8a

我有以下基本页面设置:

xxx。net/>静态主页

  • xxx。net/blog/->带有循环的博客页面,显示所有帖子。net/gallery/->仅显示分类为“gallery”的帖子的循环库页面。net/extra/>另一个带有循环的页面,只显示分类为“extra”的帖子
  • 两个特殊类别“gallery”和“extra”用于过滤某些帖子,并以不同的方式显示它们:

    在…上/gallery, 只显示“gallery”类别的帖子(实际上有自定义摘录,而不是其标准内容);“extra”的等效值也适用。

    到目前为止,我都很清楚,但是,根据一篇文章是作为博客循环的一部分还是其他循环的一部分显示,会使用不同的文章模板:如果一篇文章是通过xxx.net/gallery/post-name, 如果通过调用,则使用库模板xxx.net/blog/post-name, 使用标准模板。

    我该怎么做?我觉得答案很简单,但我现在看不出来!使用新的自定义分类法而不是类别来区分“特殊”帖子有意义吗?然而,关于permalinks的主要问题仍然是一样的。

    添加内容:

    我想我可以创造一个single.php 使用以下切换器:

    if ( URL INCLUDES /GALLERY/ ) {include (TEMPLATEPATH . \'/single-gallery.php\');}
    else if ( URL INCLUDES /EXTRA/ ) { include (TEMPLATEPATH . \'/single-extra.php\');}
    else { include (TEMPLATEPATH . \'/single-blog.php\'); }
    
    然而,我认为重写规则或类似规则将是更好的方法。你对这个话题有什么看法?

    第二次添加:

    为了进一步解释为什么我想要这个功能:想想旅行报告。它包含一些文本(实际行程报告)和一组照片(行程图库)。我不想通过创建两个不同的帖子来区分这两件事,我只想创建一个帖子,其中文本作为内容,照片作为附件。

    那么我还想让访客

    a) 通过拨打电话,将文章作为标准博客条目阅读,标准输出不带照片.../blog/post-name

    b) 通过拨打电话以相册形式查看帖子(例如缩略图页).../gallery/post-name

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

    一篇文章不能(也不应该)有两个单独的文章URL。您可以更改的只是归档视图,即帖子列表。

    如果/gallery//extra/ 是post类型的postpage, 使用custom page template 对于那些。

    更新

    Create two endpoints galleryextra 对于根(EP_ROOT) (another example). 这些端点的回调函数有两个选项:

    如果端点变量值为TRUE (/gallery/ 调用时没有帖子名),呈现存档列表get_page_by_path() 并获取post对象。渲染它示例get_page_by_path():

    $post = get_page_by_path( 
        get_query_var( \'gallery\' ), 
        OBJECT, 
        \'post\' 
    );
    

    结束

    相关推荐

    Custom Page Templates

    我正在尝试找到添加页面模板的功能。我正在添加存档,但当我进入页面->添加新->时,我在侧栏中没有使用现有存档的选项。我想使用的php文件。有人能帮我吗?