我正在为客户建立一个相关的帖子部分。此相关帖子部分可通过默认的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 用户尚未分配精选图片且他们已上传自定义默认图片,显示上传的自定义默认图片
其他 如果用户尚未分配精选图片并且他们尚未上传自定义默认图片,则会在主题图片文件夹中显示默认图片
我已经尝试了几个小时来纠正这个问题,我已经遍布这个网站以及其他资源寻找解决方案,但我似乎无法得到它。
答案 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; ?>