WordPress的。如何在if else语句中使用简码?

时间:2018-07-14 07:33:49

标签: wordpress if-statement shortcode

我有以下代码,但是它以文本形式显示简码,而不是显示简码的结果。

$curr_user_id = get_current_user_id();
// the value is 0 if the user isn't logged-in
if ( $curr_user_id != 0 ) {
    // we know now the user is logged-in, so we can use his/her ID to get the user meta
    $um_value = get_user_meta( $curr_user_id, 'user_phone', true );
    // now we check if the value is correct
    if ( ! empty( $um_value ) && $um_value == 'French' ) {
        // if so we can output something
        echo '[ld_course_list course_category_name="french" col=4 progress_bar=true]';
    } else {
    // else the code, eg.
    echo '[ld_course_list course_category_name="english" col=4 progress_bar=true]';
}
}

以上代码将在下面显示文本,而不是显示短代码的结果

  

[ld_course_list course_category_name =“ english” col = 4   progress_bar = true]

如何更改代码以使其实际运行简码?

谢谢。

以下代码有效。唯一的问题是do_shortcode破坏了样式表。有人知道为什么或如何解决它吗?

<?
$curr_user_id = get_current_user_id();
// the value is 0 if the user isn't logged-in
if ( $curr_user_id != 0 ) {
    // we know now the user is logged-in, so we can use his/her ID to get the user meta
    $um_value = get_user_meta( $curr_user_id, 'user_phone', true );
    // now we check if the value is correct
    if ( ! empty( $um_value ) && $um_value == 'French' ) {
        // if so we can output something
        echo do_shortcode('[ld_course_list course_category_name="french" col=4 progress_bar=true]');
    } else {
    // else the code, eg.
    echo do_shortcode('[ld_course_list course_category_name="english" col="4" progress_bar="true"]');
}
}
?>

1 个答案:

答案 0 :(得分:1)

您使用的方式有误,您尝试使用的方法是在wordpress页面,帖子等内部使用的。

要使用内部插件,主题或任何其他.php文件,请使用名为do_shortcode()的WordPress函数,该函数可让您直接在主题和插件中添加短代码。

像这样添加它:

echo do_shortcode("[ld_course_list course_category_name="english" col=4 progress_bar=true]");