如何在wordpress shortcode中使用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>
                ';

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

$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>
                ';  

我以前是这样的,但现在不行了。显示错误。

那么现在我该如何使用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行的短路径。如果你的身体陈述超过1行,你需要大括号

你也可以使用一种叫做编码运算符的东西,但我认为这不是你现在想要的。