繁体   English   中英

PHP if 语句在 WordPress 中不起作用

[英]PHP if statement not working in 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 行对应于第一个图像语句

我确信一旦更正,我会收到关于第二个图像语句的另一条错误消息

以下代码应该执行此操作:

如果用户为帖子分配了特色图片,则该图片将显示

else如果用户没有分配特色图片并且他们上传了自定义默认图片,则显示上传的自定义默认图片

否则,如果用户没有分配特色图片并且他们没有上传自定义默认图片,则在主题图片文件夹中显示默认图片

我已经尝试了几个小时来纠正这个问题,并且我已经在整个站点以及其他资源中搜索了解决方案,但我似乎无法得到它。

出于某种原因,您的 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; ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM