Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在php文件中为wordpress开发网页中的资产创建动态路径?_Wordpress_Webpack_Path - Fatal编程技术网

是否可以在php文件中为wordpress开发网页中的资产创建动态路径?

是否可以在php文件中为wordpress开发网页中的资产创建动态路径?,wordpress,webpack,path,Wordpress,Webpack,Path,我有一个主题wordpress开发文件夹(主题/资源/资产)用于开发,主题/资产用于生产。当我创建header.php并添加: img src=”?php echo get_template_directory_uri(); ?>/assets/images/code.png” 在开发模式下,图像不会显示。它只有在构建之后才能工作。在开发模式下,路径必须是/resources/assets/images/code.png 我怎样才能解决这个问题?如何动态更改Wordpress PHP文件

我有一个主题wordpress开发文件夹(主题/资源/资产)用于开发,主题/资产用于生产。当我创建
header.php
并添加:

img src=”?php echo get_template_directory_uri();
?>/assets/images/code.png”
在开发模式下,图像不会显示。它只有在构建之后才能工作。在开发模式下,路径必须是/resources/assets/images/code.png


我怎样才能解决这个问题?如何动态更改Wordpress PHP文件中的路径?可能吗?

您可能应该从

img src=”?php echo get_template_directory_uri();
?>/assets/images/code.png”
致:


您可以使用站点URL检查它是生产站点还是开发站点,并基于该URL返回资产URL:

<?php

$site_url = get_site_url();
if($site_url == 'http://http://stage.example.com'){
    // Staging site assets url
    $assets_url = get_template_directory_uri() . '/resources/assets';
}else{
    // Live site assets url
    $assets_url = get_template_directory_uri() . '/assets';
}

?>

<img src="<?php echo $assets_url; ?>/images/code.png" />

/图像/code.png/>

相同的代码可以通过改变条件以不同的方式使用,如果你有更好的方法来比较而不是站点URL,你可以改变if语句,我们的输出将是相同的。

这太棒了!谢谢!这在很多层面上都是错的,你不能通过检测WP_调试常量来假设环境和构建。这样更好、更安全在特定的环境配置中定义WP_ENV或类似的常量。此外,它应该被提取到一些资产路径帮助器中,否则您将不得不对服务器上的每个图像重复该代码page@Owi更好的方法是使用
get\u template\u directory\u uri()
alternative/override,它将检测环境并根据与该环境相关的任何配置进行调整。虽然这超出了本问题的范围,但为了简单起见,这并不是本质上的错误,它用于在两个基本环境之间快速变化。不幸的是假设WP_DEBUG true=>development,否则production.和no-get template_directory_uri在这两种情况下都保持不变。@当您发布官方主题或将代码放入Github中时,Owi对WP架构的关注是可以的。大多数开发人员只想为他们的客户完成任务。。。
<img src="<?php
  echo get_template_directory_uri() . (WP_DEBUG ? '/resources' : '');
?>/assets/images/code.png" />
<?php

$site_url = get_site_url();
if($site_url == 'http://http://stage.example.com'){
    // Staging site assets url
    $assets_url = get_template_directory_uri() . '/resources/assets';
}else{
    // Live site assets url
    $assets_url = get_template_directory_uri() . '/assets';
}

?>

<img src="<?php echo $assets_url; ?>/images/code.png" />