我正在尝试使用wordpress主题来显示主页特色区域中的插件短代码的输出,该区域当前似乎只是从选项设置中提取文本字符串。 我已经修改了features.php文件,如下所示:
<?php global $option_setting;
$display_features = false;
$meta = get_post_meta( get_the_ID(), 'enable-features',true );
if (isset($option_setting['features-enable']['enabled'])) :
$enabled = $option_setting['features-enable']['enabled'];
if (((isset($enabled['blog']) ) && is_home() )
|| ((isset($enabled['staticpage'])) && is_front_page())
|| ((isset($enabled['posts'])) && is_single())
|| ((isset($enabled['archives'])) && is_archive())
|| ($meta)
|| ((isset($enabled['pages'])) && is_page()))
{
$display_features = true;
}
if ($display_features) :
if ( count($option_setting['features-main']) > 0 ) : ?>
<div id="features-area">
<div class="container">
<?php
$i = 0; foreach ( $option_setting['features-main'] as $features ) {
echo "<div class='col-md-4 col-sm-4 feature$i'><figure><div><a href='".esc_url($features['url'])."'><img src='".$features['image']."'><div class='features-caption'><div class='features-caption-title'>".$features['title']."</div>",($i==1 ? "<div class='features-caption-desc'><?php echo do_shortcode('[qemcalendar]'); ?></div></div></a></div></figure></div>" : "<div class='features-caption-desc'>".$features['description']."</div></div></a></div></figure></div>";
$i++; }
?>
</div>
</div><!--.features-->
<?php endif;
endif;
endif; ?>
我收到此错误:
Parse error: syntax error, unexpected ';' in /home/pennybro/public_html/dev/wp-content/themes/pbcc/features.php on line 24
第24行是回声,我想我对<?php echo do_shortcode('[qemcalendar]'); ?>
所做的事情是完全错误的,但我正在努力找出我需要做的事情。
我从一个if else开始,但由于这是在回声内部,所以不是很开心。我意识到我可能会尝试做一些根本无法奏效的事情,但所有的想法都会受到赞赏!
谢谢,
莉莎
答案 0 :(得分:0)
您的文字中存在语法错误:
这真的很长很糟糕。使用此:
echo "<div class='col-md-4 col-sm-4 feature".$i."'>"
. "<figure>"
. "<div>"
. "<a href='".esc_url($features['url'])."'>"
. "<img src='".$features['image']."'>"
. "<div class='features-caption'>"
. "<div class='features-caption-title'>".$features['title']."</div>";
if ($i==1) { echo "<div class='features-caption-desc'>" . do_shortcode('[qemcalendar]')
. "</div>"
. "</div>"
. "</a>"
. "</div>"
. "</figure>"
. "</div>";
} else {
"<div class='features-caption-desc'>".$features['description']."</div></div></a></div></figure></div>";
}
但我认为,这更具可读性:
<div class='col-md-4 col-sm-4 feature<?php echo $i; ?>'>
<figure>
<div>
<a href='<?php echo esc_url($features['url']); ?>'>
<img src='<?php echo $features['image']; ?>'>
<div class='features-caption'>
<div class='features-caption-title'><?php echo $features['title']; ?></div>
<?php
if ($i == 1) {
?>
<div class='features-caption-desc'><?php do_shortcode('[qemcalendar]'); ?></div>
<?php
} else {
?>
<div class='features-caption-desc'><?php echo $features['description']; ?></div>
<?php
}
?>
</div>
</a>
</div>
</figure>
</div>
答案 1 :(得分:0)
我认为你的问题是双重回声。
你回应三元语句(因为你使用逗号这一事实)但是你回应了这个
<?php echo do_shortcode('[qemcalendar]'); ?>
我认为
. do_shortcode('[qemcalendar]') .
或保持一致:
, do_shortcode('[qemcalendar]'),
就足够了。