是否可以在php文件中为wordpress开发网页中的资产创建动态路径?
我有一个主题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文件
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" />