PHP if语句在WordPress中不起作用

时间:2014-04-12 15:30:40

标签: php wordpress

我正在为客户建立一个相关的帖子部分。此相关帖子部分可通过默认的WordPress主题自定义程序进行缩减。

用户可以选择是否显示相关帖子,选择显示相关帖子的链接或图像,以及选择要显示的相关帖子数量(最多6个)。如果他们没有在实际帖子中添加一个缩略图,他们也可以上传自定义默认图像以用作默认的缩略图。

除了一个区域外,其他所有内容都应该正常工作。

相关区域是他们能够显示相关帖子的帖子缩略图的部分。我写了以下代码:

<?php if ( has_post_thumbnail() ) :
    the_post_thumbnail('related-thumb');
elseif ( get_theme_mod( 'wpforge_default_thumbnail' ) ) :
    <img src="<?php echo get_theme_mod( 'wpforge_default_thumbnail'); ?>" alt="<?php the_title(); ?>" />
else :
    <img src="<?php get_template_directory_uri(); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" />
endif; ?>

然后我收到以下错误消息:

Parse error: parse error in D:\Server\wamp\www\demo\wp-content\themes\wp-forge\content-related.php on line 76

第76行对应第一个图像声明

我确信一旦纠正,我将收到有关第二张图片声明的另一条错误消息

以下代码应该这样做:

如果 用户已为帖子指定了精选图片,则会显示该图片

elseif 用户尚未分配精选图片且他们已上传自定义默认图片,显示上传的自定义默认图片

其他 如果用户尚未分配精选图片并且他们尚未上传自定义默认图片,则会在主题图片文件夹中显示默认图片

我已经尝试了几个小时来纠正这个问题,我已经遍布这个网站以及其他资源寻找解决方案,但我似乎无法得到它。

1 个答案:

答案 0 :(得分:2)

出于某种原因,您的HTML代码是PHP代码的非转义部分,因此无法解析。

使用以下变体之一:

<?php if ( has_post_thumbnail() ) :
    the_post_thumbnail('related-thumb');
elseif ( get_theme_mod( 'wpforge_default_thumbnail' ) ) :
    echo '<img src="' . get_theme_mod( 'wpforge_default_thumbnail') . '" alt="' . the_title() . '" />';
else :
    echo '<img src="' . get_template_directory_uri() . '/images/default-image.jpg" alt="' . the_title() . '" />';
endif; ?>

或者:

<?php if ( has_post_thumbnail() ) :
    the_post_thumbnail('related-thumb');
elseif ( get_theme_mod( 'wpforge_default_thumbnail' ) ) :
    ?><img src="<?php echo get_theme_mod( 'wpforge_default_thumbnail'); ?>" alt="<?php echo the_title(); ?>" /><?php
else :
    ?><img src="<?php echo get_template_directory_uri(); ?>/images/default-image.jpg" alt="<?php echo the_title(); ?>" /><?php
endif; ?>