不,不要硬编码CSS中页面的ID。您可能希望在其他地方使用相同的样式,或者如果为用户缓存了样式表,则如果您不对样式表进行版本设置,用户可能不会立即看到您所做的更改。不仅如此,从长远来看,这使得解读你的风格变得更加困难!
是的,如果你不习惯WordPress,术语可能会有点混乱。从技术上讲,一个页面实际上是一篇帖子,其他很多东西也是。如果页面模板包含对post\\u class()的调用,则core中的类将输出到使用post\\u class()的标记上。这对于以特定帖子类型/格式的显示为目标,或者有条件地向其中添加您自己的类,并为不同上下文中的不同显示提供过滤器,都很有用。
有几种方法可以根据元素的来源以及您希望您的风格在WordPress中延续的方式来确定这些元素的目标。
在您的情况下,是的,您可以对ID进行硬编码,但我并不认为这是一个好的选择,但这只是我的观点。如果您的计划是创建新内容,并且最终完成后,您将删除使用相同模板的旧内容页,那么最好同时使用新名称创建一个新的页面模板。一个body类将应用于该模板上的特定样式,因此您可以为此编写CSS定义的命名空间:
.page-template-your-custom-template .entry-header img,
.page-template-your-custom-template .entry-header img {
width: 100%;
left: 0;
}
然后,您就会知道您正在为该模板专门设置样式,并且不会在将来混淆自己。您不必返回管理员处查看某个页面使用的是什么页面模板,阅读样式表会更有意义。
就像post\\u class()方法一样,还有body_class() 方法将类添加到body元素。另一种选择是有条件地向页面添加body类,这样您就可以处理它了。
例如:
自上而下工作,可能在主题的标题中。php上有一个body\\u class()方法<body>
.
您可以使用body_class filter, 然后检查要使用的页面IDis_page() 在您的功能中。php文件-例如:
function theme_namespace_your_body_class( $classes ) {
if ( is_page( array( 111, 222 ) ) ) {
$classes[] = \'your-custom-body-class\';
}
return $classes;
}
add_filter( \'body_class\', \'theme_namespace_your_body_class\' );
现在不要写这样的东西:
.page-id-111 .entry-header img,
.page-id-222 .entry-header img {
width: 100%;
left: 0;
}
您的样式表将具有:
.your-custom-body-class .entry-header img {
width: 100%;
left: 0;
}
因此,一旦您完成了所有修改,如果您需要将这些样式应用于其他页面、帖子、模板或其他内容,您可以简单地修改上述方法以包含其他页面ID,或者根据上下文使用各种WordPress条件将这些相同样式应用于其他地方。
此外,如果有人缓存了样式表,那么您不会强迫自己在每次进行小的更改以破坏缓存时更新样式表版本号。您的PHP代码指定要应用哪些类,并说明这是该页面、帖子或任何内容的结构,而您的样式表仍然是一个样式表,控制这些上下文中的内容实际应如何显示。
从这个顶层开始,同样的事情也可以在post\\u class()层上进行更深入的操作,并使用以下内容is_single() 检查查询中的帖子是否针对要在该元素上包含类的ID。例如:
function theme_namespace_your_post_class( $classes ) {
if ( is_single( array( 111, 222 ) ) ) {
$classes[] = \'your-custom-post-class\';
}
return $classes;
}
add_filter( \'post_class\', \'theme_namespace_your_post_class\' );
现在,使用post\\u class()方法的元素将有条件地为这些post id包含该类。
就像创建一个新的页面模板一样,您可以对帖子执行此操作。您可以创建一个类似于自定义帖子的文件。php并指定它仅供帖子使用:
<?php
/*
* Template Name: Your custom template
* Template Post Type: post
*/
或者,您可能希望相同的模板能够用于页面和帖子:
<?php
/*
* Template Name: Your custom templatee
* Template Post Type: post, page
*/
在扩展主题时,您一定要仔细研究WordPress模板层次结构,最适合您的可能是一个完全不同的解决方案,但这肯定会帮助您了解哪些内容属于哪里,以及如何更好地构建主题。查看入门主题,例如
_s, 甚至是二十岁以上的任何一位,看看他们是如何组织事情的,也是了解一些最佳实践和做事方法的好方法。
这并不意味着对样式使用页面或帖子ID是绝对禁止的或不好的做法,但我相信在99%的情况下,这是没有必要的。