语法错误,在wordpress自定义文章模板中出现意外的T_DOUBLE_ARROW


Syntax error, unexpected T_DOUBLE_ARROW in wordpress custom post template

我对以下代码有一些问题:

<?php 
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('post_type' => 'news','posts_per_page='.$gogo_blog_text_no_posts.'&paged='.$paged); 
while ($wp_query->have_posts()) : $wp_query->the_post(); 
?>

我得到*'语法错误,意外T_DOUBLE_ARROW'*

我以前用过类似的代码,没有问题,所以我有点困惑。

为了清晰起见,模板的其余部分看起来像这样:-

<?php
/*
Template Name: In The News page
*/
?>
<?php get_header(); ?>
<?php 
$gogo_blog_text_headline = get_post_meta($post->ID, 'gogo_blog_text_headline', true);
$gogo_select_blog_sidebar_position = get_post_meta($post->ID, 'gogo_select_blog_sidebar_position', true);
$gogo_blog_link_text = get_post_meta($post->ID, 'gogo_blog_link_text', true);
$gogo_blog_link_url = get_post_meta($post->ID, 'gogo_blog_link_url', true);
$gogo_blog_text_no_posts = get_post_meta($post->ID, 'gogo_blog_text_no_posts', true);
?>
<?php if($gogo_blog_text_headline) { ?>
<!--  Begin Motto -->
<div class="motto-meta">
    <h1><?php echo $gogo_blog_text_headline; ?></h1>
</div>
<!--  End Motto -->
<?php } ?>
<!--  Begin Page image -->
<?php if (has_post_thumbnail($post->ID)) { ?>
<?php $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'large');
echo '<div class="header-image"><img src="'.get_template_directory_uri().'/lib/includes/timthumb.php?src='.$thumbnail[0].'&amp;w=960&amp;h=250&amp;zc=1&amp;q=100&amp;s=1" alt="'.get_the_title().'" /></div>';?>
<?php } ?>
<!--  End Page image -->
</div>
<!-- End Header -->
<!-- Begin main wrap (it ends in footer.php) -->
<div class="wrap wide">
<div class="main-content-holder">
<?php if($gogo_select_blog_sidebar_position=='right-sidebar-blog-template') { ?>
<!--Left content area-->
<div class="left-content left">
<?php } else { ?>
<div class="left-content right">
<?php } ?>
<?php 
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('post_type' => 'news','posts_per_page='.$gogo_blog_text_no_posts.'&paged='.$paged); 
while ($wp_query->have_posts()) : $wp_query->the_post(); 
?>

<!--Begin post content-->
<?php
    // The following determines what the post format is and shows the correct file accordingly
    $format = get_post_format();
    get_template_part( '/lib/includes/post-formats/'.$format );
    if($format == '')
    get_template_part( '/lib/includes/post-formats/standard' );
?>
<!--End post content-->
<?php endwhile; ?>
<!--End left content-->
<!--Pagination -->
<!--<?php posts_nav_link(' &#183; ', 'previous page', 'next page'); ?>-->
<?php if (function_exists("pagination")) {pagination($additional_loop->max_num_pages);} ?>
<!--End pagination -->
<?php $wp_query = null; $wp_query = $temp;?>
</div>
<!--End left content area-->
<?php if($gogo_select_blog_sidebar_position=='right-sidebar-blog-template') { ?>
<!-- Right content -->
<div class="right-content right">
<?php } else { ?>
<div class="right-content left">
<?php } ?>
<?php get_sidebar('blog'); ?>
</div>
<!-- End Right content -->
</div>
<?php get_footer();?>

我对wordpress了解不多,但看起来你想传递一个数组但你忘了把它作为数组传递

尝试改变:

$wp_query->query('post_type' => 'news','posts_per_page='.$gogo_blog_text_no_posts.'&paged='.$paged);

:

$wp_query->query(array('post_type' => 'news','posts_per_page='.$gogo_blog_text_no_posts.'&paged='.$paged));

你的意思是

$wp_query->query('post_type=news&posts_per_page='.$gogo_blog_text_no_posts.'&paged='.$paged);

?那个双箭头没有任何意义