0

次のショートコードを使用して、phpワードプレステンプレートに一連のタブを挿入しました

    <?php echo do_shortcode('[tabs style="boxed"]
            [tab title="1"][some content here][/tab]
            [tab title="2"]' . get_the_excerpt() . '[/tab]
            [/tabs]');  ?>

これは正常に機能します。

カスタム投稿に「tab_contact_1」と「tab_contact_2」という2つのカスタムチェックボックスフィールドを作成しました。

チェックボックスがtrue/チェックされている場合にタブが表示されるように、タブに条件付きロジックを追加したいと思います。そうでなければそれは隠れます。(これは、このコンテンツが利用できる投稿と利用できない投稿があるためです)

私はサイトの他のカスタムフィールドで同様のロジックを使用していますが、タブを使用しておらず、同じ考え方を適用できると考えていました。コードを試してみましたが(以下を参照)、ページが読み込まれていません。私は何か間違ったことをしていますが、それを理解することはできません。いくつかのガイダンスを期待していました。

どうもありがとう

<?php echo do_shortcode('[tabs style="boxed"]
' . if ( get_post_meta($post->ID, 'tab_contact_1', true)) { . '
[tab title="1"][some content here][/tab]
'. } .'
' . if ( get_post_meta($post->ID, 'tab_contact_2', true)) { . '
[tab title="2"]' . get_the_excerpt() . '[/tab]
'. } .'
[/tabs]');  ?>
4

1 に答える 1

4

良い習慣は、echo1行ではなく、それらを変数に格納し、次のように最終的なコードをエコーアウトすることです。

<?php

$result = '';

$result .= '[tabs style="boxed"]';
if ( get_post_meta( $post->ID, 'tab_contact_1', true ) != 'false' ) {
    $result .= '[tab title="1"][some content here][/tab]';
}
if ( get_post_meta( $post->ID, 'tab_contact_2', true ) != 'false' ) {
    $result .= '[tab title="2"]' . get_the_excerpt() . '[/tab]';
}
$result .= '[/tabs]';

echo do_shortcode( $result );

?>
于 2012-07-17T08:24:55.350 に答える