You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决代码第34行Parse error: unexpected 'post_type'(T_STRING)错误?

解决 Parse error: syntax error, unexpected 'post_type' (T_STRING) 错误

这个错误本质是PHP解析器处理到第34行时,发现前面的代码存在语法不完整的问题,导致它无法正确识别post_type这个字符串的作用。结合你是在自定义文章类型services的VC小部件while循环里遇到的问题,大概率是WP_Query参数数组的语法错误或者循环前后的引号/括号没处理好,下面给你具体的排查和修复方法:

最常见的错误场景及修复

1. WP_Query参数数组漏写逗号

这是最容易犯的低级错误——数组元素之间没加逗号分隔,导致解析器逻辑混乱。比如错误写法:

$args = array(
    'post_type' => 'services'
    'posts_per_page' => -1 // 这里漏了逗号!
);
$services_query = new WP_Query($args);
while ($services_query->have_posts()) : $services_query->the_post();
// 循环内容
endwhile;

修复方法:给每个数组元素末尾加上逗号(最后一个元素加不加都可以,但建议统一加上,避免后续新增元素时漏写):

$args = array(
    'post_type'      => 'services',
    'posts_per_page' => -1,
    'order'          => 'DESC'
);
$services_query = new WP_Query($args);

2. 字符串引号未闭合或混用

如果在循环里输出内容时,引号嵌套错误,也会触发这个问题。比如错误写法:

echo '<div class="service" data-post-type='post_type'>'; // 单引号嵌套单引号,导致提前闭合

修复方法:使用引号转义或者混合单双引号,正确获取文章类型:

// 方法1:用双引号包裹外层,内部用单引号
echo "<div class='service' data-post-type='{$post->post_type}'>";
// 方法2:字符串拼接
echo '<div class="service" data-post-type="' . get_post_type() . '">';

3. 括号/代码块未闭合

如果在第34行之前有if语句、函数调用的括号没闭合,也会导致解析器误判。比如:

if (is_page()) {
    $args = array(
        'post_type' => 'services'
// 这里漏了闭合数组的)和if的}
while ($services_query->have_posts()) : ...

修复方法:检查第34行之前的所有代码,确保所有的(和)、{和}都正确配对闭合。

完整的正确示例代码

给你一个标准的自定义文章类型循环写法,你可以对照调整你的VC小部件代码:

// 定义查询参数
$services_args = array(
    'post_type'      => 'services',
    'posts_per_page' => 6, // 按需调整数量,-1表示全部
    'orderby'        => 'menu_order', // 可以按菜单顺序、日期等排序
    'order'          => 'ASC'
);

// 执行查询
$services_query = new WP_Query($services_args);

// 循环输出
if ($services_query->have_posts()) :
    while ($services_query->have_posts()) : $services_query->the_post();
        // 这里写你的内容输出,比如标题、缩略图、自定义字段等
        ?>
        <div class="service-item">
            <?php if (has_post_thumbnail()) : ?>
                <div class="service-thumb"><?php the_post_thumbnail('medium'); ?></div>
            <?php endif; ?>
            <h4><?php the_title(); ?></h4>
            <div class="service-content"><?php the_excerpt(); ?></div>
        </div>
        <?php
    endwhile;
    // 一定要重置查询,避免影响后续全局文章数据
    wp_reset_postdata();
else :
    echo '<p>暂无服务内容</p>';
endif;

总结一下:先重点检查第34行前后的代码,尤其是数组的逗号、引号闭合、括号配对这些细节,PHP语法错误往往都是这些不起眼的小问题导致的。

内容的提问来源于stack exchange,提问作者Atul katara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:57:25