function some_shortcode($atts){
ob_start();
extract( shortcode_atts( array(
'option1' => '',
'option2' => 1,
'option3' => 1,
'option4' => ''
), $atts )
);
$args = array(
'option1' => $option1,
'option2' => $option2,
'option3' => $option3,
'option4' => $option4
);
?>
<div class="classa <?php $option4==1 ? 'class2' : '' ?>">
<span><?php echo get_theme_mod('newsletter_line_back'); ?></span>
</div>
<div class="classb <?php $option1==1 ? 'class3' : '' ?>">
<?php if($option2==1) {?>
<h2><?php echo get_theme_mod('kirki_1'); ?></h2>
<?php } ?>
<?php if($option3==1) {?>
<p><?php echo get_theme_mod('kirki_2'); ?></p>
<?php } ?>
//somecodehere
</div>
<?php
return ob_get_clean();
}
add_shortcode('some_shortcode', 'some_shortcode');
Хотя приведенный выше код не генерирует какой-либо фатальной ошибки, он также бросает вызов основной цели.
Предположим, если я напишу это →
[some_shortcode option2="0" option1="1"][/some_shortcode]
ни <h2>
исчезает ни class3
печатается.
Я считаю, что я совершаю некоторую ошибку синтаксиса.
помощь будет оценена. Спасибо!
Во-первых, вы не использовали переменную должным образом, как вы ее объявили
$args = array(
'option1' => $option1,
'option2' => $option2,
'option3' => $option3,
'option4' => $option4
);
Я приведу только один пример, следующий вы перебираете .. В этих строках
<div class="classa <?php $option1==1 ? 'class2' : '' ?>">
Целевая переменная массива напрямую не поможет вашему делу сделать что-то
<div class="classb <?php echo $args['option1'] == 1 ? 'class3' : '' ?>">
и да, у вас нет echo
там тоже … 🙂
Вы должны напечатать этот класс правильно !!
Наслаждайся этой работой на моем ноутбуке ..
Вот правильный код.
function some_shortcode($atts){
ob_start();
extract( shortcode_attr( array(
'option1' => '',
'option2' => 1,
'option3' => 1,
'option4' => ''
), $atts )
);
$args = array(
'option1' => $option1,
'option2' => $option2,
'option3' => $option3,
'option4' => $option4
);
?>
<div class="classa <?php $option4==1 ? 'class2' : '' ?>">
<span><?php echo get_theme_mod('newsletter_line_back'); ?></span>
</div>
<div class="classb <?php $option1==1 ? 'class3' : '' ?>">
<?php if($option2==1) {?>
<h2><?php echo get_theme_mod('kirki_1'); ?></h2>
<?php } ?>
<?php if($option3==1) {?>
<p><?php echo get_theme_mod('kirki_2'); ?></p>
<?php } ?>
//somecodehere
</div>
<?php
return ob_get_clean();
}
add_shortcode (‘some_shortcode’, ‘some_shortcode’);