0

我一直在寻找一段时间,但我还没有真正看到有人谈论这个或找到解决方案。至少除了一些技巧可以从functions.php中提供帮助

对于工作中的 WordPress 安装,我必须将安装移动到它自己的文件夹中。我在这里使用了指南:https ://wordpress.org/support/article/giving-wordpress-its-own-directory/#method-ii-with-url-change

一切正常,文件夹结构符合预期:

- /
|-- Wordpress
|-- wp-content
  |-- themes
    |-- WebsiteTheme

所以那里不用担心。目前,functions.php 在 wp-config.php 中有以下两行

define( 'WP_HOME', 'https://dev.website.nl/' );
define( 'WP_SITEURL', 'https://dev.website.nl/wordpress' );

一切都按照 WordPress 官方网站上的指南进行。但这就是事情变得奇怪的地方。当我尝试将这样的脚本排入队列时

$path = '/wp-content/themes/website/js/app.js';
wp_register_script('someName-'.$entry, $path, [], false, true);        
wp_enqueue_script('someName-'.$entry);

路径最终设置为

/wordpress/wp-content/themes/website/js/app.js

这当然行不通。看起来路径是用 SITEURL 而不是 HOME url 预先固定的。

目前,如果基于我给脚本的名称的条件语句为真,我正在使用一个挂钩到script_loader_tag和 str_replace 路径中的“/ wordpress”部分的过滤器。但是当我只是按照 WordPress 指南进行设置时,我认为这不是问题。知道我是否在这里遗漏了什么?

谢谢

4

1 回答 1

0

的第二个参数wp_register_script()接受脚本$src完整 URL 或脚本 相对于 WordPress 根目录的路径

为了防止由后一种默认值引起的这个问题,您最好传递完整的 URL。get_template_directory_uri()我认为您可以通过在前面加上or来做到这一点get_stylesheet_directory_uri()

例如:

$path = '/js/app.js';
wp_register_script('someName-'.$entry, get_template_directory_uri() . $path, [], false, true);  
于 2022-02-02T15:43:12.333 回答