2017-10-08 29 views
1

我在Wordpress中使用ACF插件,允许客户端将图片上传到主页上的全屏幕背景图片上。我有对应于星期几的字段,我想查询数据库以获取当周的当天,然后显示相应的图像。我是新来的PHP,并没有能够找出我做错了什么。感谢任何建议。wordpress php中的错误

function my_custom_background ($today) { 

$today = date('l'); 

if ($today == 'Saturday') 
echo [] ?> <style>body.page-id-5 {background-image: url(<?php echo get_field('saturday'); ?>);}</style><?php; 

if ($today == 'Sunday') 
echo [] ?> <style>body.page-id-5 {background-image: url(<?php echo get_field('sunday'); ?>);}</style><?php; 

if ($today == 'Monday') 
echo [] ?> <style>body.page-id-5 {background-image: url(<?php echo get_field('monday'); ?>);}</style><?php; 

if ($today == 'Tuesday') 
echo [] ?> <style>body.page-id-5 {background-image: url(<?php echo get_field('tuesday'); ?>);}</style><?php; 

if ($today == 'Wednesday') 
echo [] ?> <style>body.page-id-5 {background-image: url(<?php echo get_field('wednesday'); ?>);}</style><?php; 

if ($today == 'Thursday') 
echo [] ?> <style>body.page-id-5 {background-image: url(<?php echo get_field('thursday'); ?>);}</style><?php; 

if ($today == 'Friday') 
echo [] ?> <style>body.page-id-5 {background-image: url(<?php echo get_field('friday'); ?>);}</style><?php; 
} 

add_action('wp', 'my_custom_background'); 
+0

你在acf中为返回值设置了什么从acf创建文件上传字段,例如id,url –

+1

欢迎来到SO!当您遇到错误时,将错误详细信息添加到问题中以帮助其他人了解问题非常重要。如果可用,请添加错误消息和堆栈跟踪。 –

+0

Akshay acf的返回值是url – Kumara

回答

2

首先,你想用这个语法来完成什么?

echo [] ?> .... <?php; 

如果您要退出样式的php模式,并且回显空数组对我没有任何意义,则不需要echo。我假设原来有一些数组修改正在进行,部分已被删除。你不需要那个。

由于你们的田地,恰当命名,可以简化您的代码:

function my_custom_background() { 
    $today = date('l'); 
    ?><style>body.page-id-5 {background-image: url(<?php echo get_field(strtolower($today)); ?>);}</style><?php 
} 

你不应该与wp行动挂钩做到这一点,不过,那是在请求生命周期还为时尚早。 wp_head是比较合适的,所以加

add_action('wp_head', 'my_custom_background'); 

如果还是不行,请确保它实际上是这个代码,是创造的问题,而不是在模板例如一些被遗忘的硬编码的测试。打开网页的HTML源代码并查找输出。看看它是否改变,如果你改变功能的输出。