我一直在为我的worpress网站脱机处理此代码错误。
解析错误:语法错误,在第169行的C:\ Users \ guyzer \ Desktop \ InstantWP_4.3 \ iwpserver \ htdocs \ wordpress \ wp-content \ themes \ thesis_182 \ custom \ custom_functions.php中出现意外'[' / p>
行代码错误行169: $post_date = explode(" ", $post_event)[0];
在实际网站上,网站正在运行,但是当我使用复制器复制实时网站并转移到离线或其他服务器时,始终会发生此错误,从而导致网站关闭。 我希望你能帮我解决这个错误!
以下是错误的完整代码:
<div class="page">
<div class="tab-sidebars">
<h1><a href="<?php echo get_site_url()?>/gigs">GIGS</a></h1>
<h3><a href="<?php echo get_site_url()?>/gigs/today">• Today</a></h3>
<h3><a href="<?php echo get_site_url()?>/gigs/weeks">• Weeks</a></h3>
<h3><a href="<?php echo get_site_url()?>/gigs/month">• Month</a></h3>
</div>
<div id="gigs-carousel" class="post-container">
<a class="buttons prev" href="#"></a>
<div class="viewport">
<ul class="overview" style="width:9999px !important">
<?php
global $post;
$today = getdate();
$args = array( 'category_name' => 'gigs',
'post_type' => 'post',
'meta_key' => custom_event_date,
'orderby' => meta_value,
'order' => 'ASC',
'showposts' => '99'
);
$the_query = new WP_Query($args);
while($the_query->have_posts()) :
$the_query->the_post();
$post_id = $post->ID;
$post_event = get_post_meta($post_id, 'custom_event_date', true);
$post_date = explode(" ", $post_event)[0];
$post_time = explode(" ", $post_event)[1];
$post_day = explode("-", $post_date)[2];
$post_permalink = get_permalink($post_id);
$thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post_id), 'thumbnail' );
$date_now = date("Y-m-d H:i");
$date_compare = $post_event;
$date_result = strtotime($date_compare) - strtotime($date_now);
$current_month = date("m");
$event_month = explode("-", $post_date)[1];
if($date_result > 0 && $current_month == $event_month) :
?>
<li style="background-image:url(<?php echo $thumbnail_src[0]?>)">
<div class='post-day'><?php echo $post_day?></div>
<a class='post-item' href="<?php echo $post_permalink?>" >
<div class='post-title'><?php echo get_the_title();?></div>
<div class='post-sub'><?php echo convert_time($post_time)?></div>
<div class='post-excerpt'><?php the_excerpt(); ?></div>
</a>
</li>
<?php
endif;
endwhile;
wp_reset_postdata();
?>
</ul>
</div><!-- .viewport -->
<a class="buttons next" href="#"></a>
</div><!-- #gigs-carousel -->
</div>
答案 0 :(得分:5)
$post_date = explode(" ", $post_event)[0];
您可能正在尝试在不支持它的PHP版本上使用数组解除引用功能。它仅适用于PHP 5.4+版本。
从PHP手册:
从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组取消引用。之前只能使用临时变量。
正如它所说,你将不得不在旧版本的PHP上使用临时变量:
$temp = explode(" ", $post_event);
$post_date = $temp[0];
同样更改所有出现的事项。
或者,您可以使用list()
在一行中执行此操作(但稍微降低了可读性):
也就是说,您可以替换:
$post_date = explode(" ", $post_event)[0];
$post_time = explode(" ", $post_event)[1];
用这个:
list($post_date, $post_time) = explode(" ", $post_event);
但是,使用临时变量并手动分配值更加整洁和可读。
答案 1 :(得分:1)
答案 2 :(得分:1)
我相信你需要PHP&gt; = 5.4:
explode(" ", $post_event)[0]
尝试:
list($post_date, $post_time) = explode(" ", $post_event);
list($junk, $junk2, $post_day) = explode("-", $post_date);
答案 3 :(得分:0)
只需将$ post_event爆炸到它自己的数组中然后对其采取行动。
$post_event = get_post_meta($post_id, 'custom_event_date', true);
$post_dates = explode(" ", $post_event);
$post_date = $post_dates[0];
$post_time = $post_dates[1];
$post_day = $post_dates[2];