我如何在 wordpress 短代码中使用 php if 语句?

How I can use php if statment in wordpress shortcode?

我会尝试做一个WordPress插件。我的所有代码都可以,但我无法理解如何在自定义 post 简码中使用 if else 语句。

global $post;
        $accordion_icon = get_post_meta($idd, 'accordion_icon', true);

        $list .= '
                <div class="collapse-card">
                <div class="title">
                    <i class="fa '.$accordion_icon.' fa-2x fa-fw"></i>
                    <strong>'.get_the_title().'</strong>
                </div>
                <div class="body">
                    <p>'.get_the_content().'</p>
                </div>
                </div>
                ';

这是我现在的密码。听说标题 div 中有一个图标选项。我想在放置任何自定义图标代码时显示自定义图标,而当我不放置任何自定义图标代码时显示通用图标。我可以理解这里需要使用 if else 语句,但我不明白我如何在我的代码中使用 if else 语句。

$list .= '
                <div class="collapse-card">
                <div class="title">
                '<?php if($accordion_icon) : ?>'
                    <i class="fa '.$accordion_icon.' fa-2x fa-fw"></i>
                '<?php else : ?>'
                    <i class="fa fa-question-circle fa-2x fa-fw"></i>
                '<?php endif; ?>'

                    <strong>'.get_the_title().'</strong>
                </div>
                <div class="body">
                    <p>'.get_the_content().'</p>
                </div>
                </div>
                ';  

我是这样使用的,但不是 working.Show 错误。

那么现在我该如何使用 if else 语句?

您可以这样做(快捷方式):

$list .= '<div class="collapse-card">
          <div class="title">';
if($accordion_icon)
    $list .= '<i class="fa '.$accordion_icon.' fa-2x fa-fw"></i>">';
else
    $list .= '<i class="fa fa-question-circle fa-2x fa-fw"></i>';

或者像这样(长途):

$list .= '<div class="collapse-card">
          <div class="title">';
if($accordion_icon){
    $list .= '<i class="fa '.$accordion_icon.' fa-2x fa-fw"></i>">';
}else{
    $list .= '<i class="fa fa-question-circle fa-2x fa-fw"></i>';
}

注意:1条线路只能使用short方式。如果您的正文语句超过 1 行,则需要花括号。

您也可以使用名为 coditional operator 的东西,但我认为这不是您现在要找的东西。