gpt4 book ai didi

php - 在 Wordpress 中有条件地加载样式和脚本

转载 作者:搜寻专家 更新时间:2023-10-31 21:00:58 25 4
gpt4 key购买 nike

我正在寻找一种在特定 Wordpress 页面上有条件地加载脚本和样式的解决方案。我一直在寻找解决方案,但陷入了死胡同。我无法在 functions.php 文件中使用 php 选择器(例如 is_page())来执行此操作。这是我过去尝试的一个例子:

function blog_style() {

if ( is_page('blog') ) {

wp_enqueue_style( 'blog' );

}
}

add_action( 'wp_print_styles', 'blog_style' );

我有一种感觉,这是因为 functions.php 文件是在页面被识别之前加载的。任何建议都是有帮助的。我对 php 和 Wordpress codex 有基本的了解。谢谢!

最佳答案

我理解您在这件事上的困惑,并且必须承认 WordPress 有时处理事情的方式很奇怪。

首先;你应该在 wp_enqueue_scripts Hook 中加入脚本和样式:

add_action('wp_enqueue_scripts', 'themeslug_styles');

function themeslug_styles() {
wp_enqueue_style(...);
}

或者如果您愿意,也可以使用简写/匿名函数格式:

add_action('wp_enqueue_scripts', function () {
wp_enqueue_style(...);
});

if 语句中的 is_page('blog') 的基本思想是正确的。但也看看这个 detailed info about conditional tags - 也许有更好的方法来定位您网站的博客页面(请参阅链接资源上的“博客页面”)。

您必须在您的函数中使用 if 语句,因为只有在函数运行的 wp_enqueue_scripts 点,WordPress 才会准备好有关实际内容的信息。

add_action('wp_enqueue_scripts', function () {
if (is_home()) {
wp_enqueue_style('themeslug-stylename', URL-to-your-style);
wp_enqueue_script('themeslug-scriptname', URL-to-your-script);
}
});

补充:您是对的,functions.php 文件主要用于设置所有内容并将函数作为操作连接到 WordPress Hook 。因此,代码在 WordPress 执行流程的早期执行,让您可以访问尽可能多的 Hook 。正如您所经历的那样,不利之处在于此时无法直接访问许多内容。

关于php - 在 Wordpress 中有条件地加载样式和脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42721607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com