我正在寻找一种替代使用函数的方法。php并基于每个页面的ID应用条件,相反,我希望将CSS排在每个页面的顶部,如下所示:
<?php
defined(\'ABSPATH\') or die();
?>
<?php get_header();?>
<?php wp_enqueue_style(\'home\', get_template_directory_uri() . \'/assets/css/style.css\', \'\', 1, \'all\'); ?>
在页眉中,在wp\\u head()之前有自己的CSS脚本,如下所示:
...
<title><?php wp_title();?></title>
<?php wp_enqueue_style(\'header\', get_template_directory_uri() . \'/assets/css/header.css\', \'\', 1, \'all\'); ?>
<?php wp_head();?>
</head>
<body <?php body_class();?>>
因此,通过这种方式,CSS文件将在标头中排队。php,然后在该特定页面中添加另一个。php。对于希望添加特定于页面的css的人来说,这是正确的方法吗?
SO网友:Tom J Nowell
因此,通过这种方式,CSS文件将在标头中排队。php,然后在该特定页面中添加另一个。php。
否,因为:
所有排队的事情都在报头中处理,但您在报头完成后调用它。猫已经从袋子里出来了,马已经逃跑了,秩序很重要。充其量这会将CSS推到页脚,这会将CSS添加到每个页面,而您已经在使用body_class()
该函数的存在是有原因的,所以在任何地方添加CSS,并使用该函数中的类来针对您想要的页面。这样,您就不需要单独的文件或奇怪的PHP逻辑,只需工作即可。E、 g.post archives具有archive
类以及其他类,包括泛型类,如post
到single
到single-post postid-1067
, 以及其他实用程序类,如用户是否登录,或特定的模板文件(single-post-template
). WordPress可以服务的所有页面都有这些页面(如果body_class
已使用)。
在这里,条件排队既不是必要的,也不是最佳的,除非您要排队的文件特别大。
但是如果你坚持,你可以在循环外获取帖子ID,并将你的排队包装成if
语句使用$id = get_queried_object_id();
. 请注意,如果您使用的是作者存档或类别存档,那么这也可以返回用户ID或术语ID,因此请注意以下功能:is_singular()
或is_archive()
此外,如果您的造型块,则使用block.json
指定前端的样式表和脚本。如果您这样做,WordPress将自动将这些文件排队,但只有在使用该块时。