我正在尝试编辑WordPress主题的页面,以便页面上可用的三个段落中的一个应该带有一个框。这里有一排三个相似的功能框,只有三分之一应该打印出来:商务包装盒。
现在,由于我已经厌倦了揭穿所有的PHP代码并在其上编写简单而枯燥的html,我想尝试以动态方式执行:当特定条件验证时,那个框将是以特定的方式印刷。
现在,我已经编辑了页面代码,以便可以使用一组不同的图标而不是默认图标(主题附带的图标),您可以从附带的代码中看到,所以我想:"为什么不将特定的图标代码设置为激活盒子设计的条件?"
我搜索了" if"的语法。声明,并尝试在页面中写一些东西:现在网站没有爆炸,这首先是一件好事,但编辑并没有像我害怕的那样起作用。
我甚至不确定" if"是正确的方法,因为基本上重复相同的元素(一个数组?)但同时,我的知识是有限的,正如我所说。
所以这是整个页面的代码:你会注意到我的第二部分
function hestia_features_content( $hestia_features_content, $is_callback = false ) {
if ( ! $is_callback ) {
?>
<div class="hestia-features-content">
<?php
}
if ( ! empty( $hestia_features_content ) ) :
$hestia_features_content = json_decode( $hestia_features_content );
if ( ! empty( $hestia_features_content ) ) {
$i = 1;
echo '<div class="row">';
foreach ( $hestia_features_content as $features_item ) :
$icon = ! empty( $features_item->icon_value ) ? apply_filters( 'hestia_translate_single_string', $features_item->icon_value, 'Features section' ) : '';
$image = ! empty( $features_item->image_url ) ? apply_filters( 'hestia_translate_single_string', $features_item->image_url, 'Features section' ) : '';
$title = ! empty( $features_item->title ) ? apply_filters( 'hestia_translate_single_string', $features_item->title, 'Features section' ) : '';
$text = ! empty( $features_item->text ) ? apply_filters( 'hestia_translate_single_string', $features_item->text, 'Features section' ) : '';
$link = ! empty( $features_item->link ) ? apply_filters( 'hestia_translate_single_string', $features_item->link, 'Features section' ) : '';
$color = ! empty( $features_item->color ) ? $features_item->color : '';
$choice = ! empty( $features_item->choice ) ? $features_item->choice : 'customizer_repeater_icon';
?>
<!-- <div class="col-md-4 feature-box"> -->
<?php
if ($icon_value == "") {
echo '<div class="cherry-plain col-md-4 feature-box">';
} else {
echo '<div class="col-md-4 feature-box">';
}
?>
<!-- <div class="col-md-4 feature-box"> -->
<div class="info hestia-info">
<?php if ( ! empty( $link ) ) : ?>
<a href="<?php echo esc_url( $link ); ?>">
<?php
endif;
switch ( $choice ) {
case 'customizer_repeater_image':
if ( ! empty( $image ) ) {
?>
<div class="card card-plain">
<img src="<?php echo esc_url( $image ); ?>"/>
</div>
<?php
}
break;
case 'customizer_repeater_icon':
if ( ! empty( $icon ) ) {
?>
<div class="icon" <?php echo ( ! empty( $color ) ? 'style="color:' . $color . '"' : '' ); ?>>
<!-- <i class="fa <?php echo esc_html( $icon ); ?>"></i> -->
<span style="font-size: 33px;" data-icon="<?php echo esc_html( $icon ); ?>"></span>
</div>
<?php
}
break;
}
?>
<?php if ( ! empty( $title ) ) : ?>
<h4 class="info-title"><?php echo esc_html( $title ); ?></h4>
<?php endif; ?>
<?php if ( ! empty( $link ) ) : ?>
</a>
<?php endif; ?>
<?php if ( ! empty( $text ) ) : ?>
<p><?php echo wp_kses_post( html_entity_decode( $text ) ); ?></p>
<?php endif; ?>
</div>
</div>
<?php
if ( $i % 3 == 0 ) {
echo '</div><!-- /.row -->';
echo '<div class="row">';
}
$i++;
endforeach;
echo '</div>';
}// End if().
endif;
if ( ! $is_callback ) {
?>
</div>
<?php
}
}
从单纯的语法POV来看,它不应该是完全错误的,因为如果你用if ($icon_value == "")
切换if ($icon_value = "")
的东西是有效的,那就是它改变了所有的元素,这不是什么我想要。
我只想更改该条件验证的那个元素:我认为有一个WHERE函数但它似乎不存在于我正在思考的形式中。
无论如何:我怎么能纠正这个?
答案 0 :(得分:0)
我认为您要么检查$icon
,要么$features_item->icon_value
... $icon_value
似乎没有在页面的任何位置使用。变化:
if($icon_value == "") {
到
if($icon == "") {
如果这不起作用......试试
if($features_item->icon_value == "") {
交易的一个固定技巧是使用echo '<pre>'; var_dump( $icon_value ); echo '</pre>';
来查看你的变量等于什么!