Else If statement for ACF

时间:2017-11-07 作者:Alex Dahlman

我正在尝试使用ACF构建一个功能,其中用户选择一个选项,将英雄图像更改为三个选项之一。1) 静态英雄图像2)youtube视频3)mp4循环播放。我在后端设置了一个条件来显示哪个选项取决于选项,但是,我希望用户能够选择一个选项,并使该选项显示在其他选项之上。这就是我目前的情况:

<?php
if(get_field(\'hero_video\', \'options\') ) {
 $headervideo = get_field( \'hero_video\', \'options\' );
 echo \'<div class="headervideo">\' . $headervideo . \'</div>\';

else if ( get_field( \'hero_upload\', \'options\' ) ) {
     $headerupload = get_field( \'hero_upload\', \'options\' );
     echo \'<div class="hero-video" data-vide-bg="mp4: \' . 
       $headerupload . \'" data-vide-options="loop: true, muted: true">
</div>\';
 else
     ( get_field( \'header_image\', \'options\' ) ){
     $headerimage = get_field( \'header_image\', \'options\' );
     echo \'<img class="headerimage" src ="\' . $headerimage[\'url\'] . 
\'" alt="\' . $headerimage[\'alt\'] . \'" />\';
 }
?>
<?php endif;?>
在我这样做之前,我有一些假设语句。但是,如果用户在图像选择框中留下图像,它将保持不变。我想用这个来避免这种情况。我当前遇到的错误是第6行的“语法错误,意外的‘else’(T\\u else)”。

2 个回复
最合适的回答,由SO网友:WebElaine 整理而成

你把花括号和另一种语法混在一起了。这将有助于:

<?php
if(get_field(\'hero_video\', \'option\') ) {
     $headervideo = get_field( \'hero_video\', \'option\' );
     echo \'<div class="headervideo">\' . $headervideo . \'</div>\';
} elseif ( get_field( \'hero_upload\', \'options\' ) ) {
     $headerupload = get_field( \'hero_upload\', \'option\' );
     echo \'<div class="hero-video" data-vide-bg="mp4: \' . 
     $headerupload . \'" data-vide-options="loop: true, muted: true">
</div>\';
} else {
     get_field( \'header_image\', \'option\' );
     $headerimage = get_field( \'header_image\', \'option\' );
     echo \'<img class="headerimage" src ="\' . $headerimage[\'url\'] . 
\'" alt="\' . $headerimage[\'alt\'] . \'" />\';
}
?>

SO网友:techno

加上您键入的语法错误options 而不是option.

此代码应适用于:

<?php
$headervideo = get_field( \'hero_video\', \'option\' );
$headerupload = get_field( \'hero_upload\', \'option\' );
$headerimage = get_field( \'header_image\', \'option\' );

if($headervideo) {
 echo \'<div class="headervideo">\' . $headervideo . \'</div>\';
}
elseif($headerupload) {
     echo \'<div class="hero-video" data-vide-bg="mp4: \' . 
       $headerupload . \'" data-vide-options="loop: true, muted: true">
</div>\';
}
else{
     echo \'<img class="headerimage" src ="\' . $headerimage[\'url\'] . 
\'" alt="\' . $headerimage[\'alt\'] . \'" />\';
 }
?>

结束

相关推荐

Virtual Pages plugins

我很难让插件正常工作Virtual Pages (WordPress插件可简化虚拟页面的创建)我确实进行了编辑,根据查询创建了一个循环。add_action( \'gm_virtual_pages\', function( $controller ) { /* Creating virtuals pages for companies */ $args = array( \'post_type\' => array(\'companies\',), \'post_status\'

Else If statement for ACF - 小码农CODE - 行之有效找到问题解决它

Else If statement for ACF

时间:2017-11-07 作者:Alex Dahlman

我正在尝试使用ACF构建一个功能,其中用户选择一个选项,将英雄图像更改为三个选项之一。1) 静态英雄图像2)youtube视频3)mp4循环播放。我在后端设置了一个条件来显示哪个选项取决于选项,但是,我希望用户能够选择一个选项,并使该选项显示在其他选项之上。这就是我目前的情况:

<?php
if(get_field(\'hero_video\', \'options\') ) {
 $headervideo = get_field( \'hero_video\', \'options\' );
 echo \'<div class="headervideo">\' . $headervideo . \'</div>\';

else if ( get_field( \'hero_upload\', \'options\' ) ) {
     $headerupload = get_field( \'hero_upload\', \'options\' );
     echo \'<div class="hero-video" data-vide-bg="mp4: \' . 
       $headerupload . \'" data-vide-options="loop: true, muted: true">
</div>\';
 else
     ( get_field( \'header_image\', \'options\' ) ){
     $headerimage = get_field( \'header_image\', \'options\' );
     echo \'<img class="headerimage" src ="\' . $headerimage[\'url\'] . 
\'" alt="\' . $headerimage[\'alt\'] . \'" />\';
 }
?>
<?php endif;?>
在我这样做之前,我有一些假设语句。但是,如果用户在图像选择框中留下图像,它将保持不变。我想用这个来避免这种情况。我当前遇到的错误是第6行的“语法错误,意外的‘else’(T\\u else)”。

2 个回复
最合适的回答,由SO网友:WebElaine 整理而成

你把花括号和另一种语法混在一起了。这将有助于:

<?php
if(get_field(\'hero_video\', \'option\') ) {
     $headervideo = get_field( \'hero_video\', \'option\' );
     echo \'<div class="headervideo">\' . $headervideo . \'</div>\';
} elseif ( get_field( \'hero_upload\', \'options\' ) ) {
     $headerupload = get_field( \'hero_upload\', \'option\' );
     echo \'<div class="hero-video" data-vide-bg="mp4: \' . 
     $headerupload . \'" data-vide-options="loop: true, muted: true">
</div>\';
} else {
     get_field( \'header_image\', \'option\' );
     $headerimage = get_field( \'header_image\', \'option\' );
     echo \'<img class="headerimage" src ="\' . $headerimage[\'url\'] . 
\'" alt="\' . $headerimage[\'alt\'] . \'" />\';
}
?>

SO网友:techno

加上您键入的语法错误options 而不是option.

此代码应适用于:

<?php
$headervideo = get_field( \'hero_video\', \'option\' );
$headerupload = get_field( \'hero_upload\', \'option\' );
$headerimage = get_field( \'header_image\', \'option\' );

if($headervideo) {
 echo \'<div class="headervideo">\' . $headervideo . \'</div>\';
}
elseif($headerupload) {
     echo \'<div class="hero-video" data-vide-bg="mp4: \' . 
       $headerupload . \'" data-vide-options="loop: true, muted: true">
</div>\';
}
else{
     echo \'<img class="headerimage" src ="\' . $headerimage[\'url\'] . 
\'" alt="\' . $headerimage[\'alt\'] . \'" />\';
 }
?>

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。