在特定类别的URL内有独特的设计

时间:2017-04-17 作者:Gonzalo

我一直在修改WordPress主题,对于一些需要特定设计的特定页面,我放置了一个名为page-specific-url.php 其中,特定url是我要显示的页面。

我面临的问题是,我需要设计的特定页面的位置在类别中,因此url是domain.com/category1/specific-page. 当我放置specific-page.php 在主题的根目录中,我可以通过domain.com/category1/specific-page?

2 个回复
SO网友:cjbj

有一个名为theme_page_templates 在某些情况下,可以使用它强制使用特定模板。像这样:

add_filter (\'theme_page_templates\', \'wpse263827_filter_theme_page_templates\', 20, 3 );
wpse263827_filter_theme_page_templates ($page_templates, $this, $post) {
  if (condition based on $post) $page_templates = \'path-to-template.php\';
  return $page_templates;
  }
因此,您可以将模板文件放置在任何需要的地方,并在页面处于特定类别时进行分配。无需触摸url结构。

SO网友:mayersdesign

这就是身体标签是你最好的朋友。我将使用以下功能将类别添加为自定义正文标记:

/*Add custom body tag for categories*/
add_filter( \'body_class\', \'cat_body_class\' );
function cat_body_class( $classes ) {
if (is_single()) {
 $category = get_the_category();
 $classes[] = ‘category-‘.$category[0]->slug;
}
 return $classes;
}
然后只需使用body标记来设置页面样式:)您甚至不必添加任何新的页面模板(除非这些类别具有不同的设计/布局或完全不同的逻辑。

相关推荐

Use of Templates in a Plugin

我正在创建一个插件。为此,我编写了自己的模板。现在我想在我的插件目录中创建模板文件。但这并不管用。由于我使用了插件目录,wordpress doesent知道我的模板是wp templates。让WP知道这些文件是wordpress模板的最佳方式是什么?感谢您的回答:)