jjzjj

PHP if/else get_field() 与 WordPress

coder 2024-04-08 原文

我试图在 WP 后端为客户提供一些选项,以自定义显示在其网站主页上的轮播。我正在使用高级自定义字段来处理从客户端获取输入。我想给他们两个选择:

选项 #1) 允许客户端插入要显示的文本字符串 ('carousel_title_text')

选项 #2) 允许客户端上传要显示的 Logo ('carousel_logo')

我希望代码检查标题文本,如果没有,则显示 Logo 。我还没有决定如果两个字段都是空的会发生什么。无论如何,这是我想出的:

<?
if( get_field('carousel_title_text') ) { ?>
  <h2 class="promo"><?php the_field('carousel_title_text');?></h2>
<? } elseif( get_field('carousel_logo') ) {
  the_field('carousel_logo');
}
?>

只要有输入,'carousel_title_text' 就会显示,但是当它为空且 'carousel_logo' 不存在时,它不会正确输出 Logo 。谁能告诉我我做错了什么或者是否有更好的方法?

提前致谢

最佳答案

如果我没弄错,您的问题不在于 If/Else 语句,而在于 Logo 字段。我假设您在 ACF 中将此字段 (carousel_logo) 正确配置为 Image

图像 字段提供三种不同的返回值 可能性:

Note: In some versions of ACF you'll found Image Object instead of Image Array, but it's conceptually the same.

如果您只是在模板中使用 the_field('carousel_logo');,它们都不会正确显示您的图片。那么,您如何获得 Logo ?

如果您想要最简单的解决方案,请为您的 Logo 字段选择图像 URL 作为返回值,然后像这样打印它:

<?
$title = get_field('carousel_title_text');
$logo = get_field('carousel_logo');

if (!empty($title)) : ?>
    <h2 class="promo"><?= $title ?></h2>
<?php elseif (!empty($logo)) : ?>
    <img class="logo" src="<?= $logo ?>">
<?php else: ?>
    <!-- No title, no logo -->
<?php endif ?>

我对你的代码做了一些改动,但基本上这里的关键行是:

<img class="logo" src="<?= $logo ?>">

这个,或者等价物:

<img class="logo" src="<?php echo $logo ?>">

应该在缺少标题时显示您的图片。


好处:如果您要处理不同的缩略图大小,我建议您使用图像数组 作为返回值。在这种情况下,$logo 将是一个包含所有信息(例如大小、所有缩略图 URL、标题等)的数组

使用:

<img class="logo" src="<?= $logo['sizes']['medium'] ?>">

'medium' 是你的 thumbnail size标签输出。

此外,请查看 ACF's Image 上的官方文档字段类型以获取更多示例和进一步解释。

关于PHP if/else get_field() 与 WordPress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578415/

有关PHP if/else get_field() 与 WordPress的更多相关文章

  1. ruby - capybara field.has_css?匹配器 - 2

    我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No

  2. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  3. ruby-on-rails - 复数 for fields_for has_many 关联未显示在 View 中 - 2

    目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi

  4. ruby-on-rails - Rails 单表继承 : How to override the value written to the type field - 2

    在我的系统中,我已经定义了STI。Dog继承自Animal,在animals表中有一个type列,其值为"Dog"。现在我想让SpecialDog继承自dog,只是为了在某些特殊情况下稍微修改一下行为。数据还是一样。我需要通过SpecialDog运行的所有查询,以返回数据库中类型为Dog的值。我的问题是因为我有一个type列,rails将WHERE"animals"."type"IN('SpecialDog')附加到我的查询中,所以我不能获取原始的Dog条目。所以我想要的是以某种方式覆盖rails在通过SpecialDog访问数据库时使用的值,使其表现得像Dog。有没有办法覆盖用于类型

  5. ruby-on-rails - Rails FasterCSV "unquoted fields do not allow\r or\n" - 2

    我在使用FasterCSV和我的rakedb:seeds迁移时遇到问题。我收到错误:“rake中止!未加引号的字段不允许\r或\n(第2行)”在以下seeds.rb数据上:require'csv'directory="db/init_data/"file_name="gardenzing020812.csv"path_to_file=directory+file_nameputs'LoadingPlantrecords'#Pre-loadallPlantrecordsn=0CSV.foreach(path_to_file)do|row|Plant.create!:name=>row[1

  6. ruby-on-rails - Rails - 如何避免在 View 中使用 hidden_​​fields 将值传递给 Controller ​​? - 2

    有没有一种方法可以避免hidden_​​field方法将View中的值传递给Controller​​?出于安全原因,我更喜欢Controller方法。不幸的是,strong_parameters不支持值对@variables。EDIT6/181:00PMESTI'verenamedmygaragescontrollertoappointmentscars_controllernolongercreatesanewappointment(formallygarages).Anewappointmentiscreatedintheappointments_controller我目前的结构路

  7. ruby-on-rails - ruby + Mongoid : how to make a required field? - 2

    我使用Mongoid的githead版本(因为Rails4),我想制作一个字段必填文档:classMyClassincludeMongoid::Documentfield:name,type:String,required:true我有这个错误:Problem:Invalidoption:requiredprovidedforfield:name.Summary:Mongoidrequiresthatyouonlyprovidevalidoptionsoneachfielddefinitioninordertopreventun...我做错了什么? 最佳答案

  8. ruby-on-rails - 如果参数为空,则 Text_field_tag 默认值? - 2

    如果params[:date]的参数为空,我希望我的text_field_tag将当前日期作为默认值,这是我目前的代码:我想要类似:谢谢 最佳答案 您可以简单地使用“或”运算符。如果params[:end]为空,它将使用Time.now。 关于ruby-on-rails-如果参数为空,则Text_field_tag默认值?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/35520

  9. ruby - 如何为 WordPress 多站点编写 h2o webserver mruby 处理程序? - 2

    这就是Apache所需要的。我想知道howIdothisinh2o.RewriteEngineOnRewriteBase/RewriteRule^index\.php$-[L]#addatrailingslashto/wp-adminRewriteRule^([_0-9a-zA-Z-]+/)?wp-admin$$1wp-admin/[R=301,L]RewriteCond%{REQUEST_FILENAME}-f[OR]RewriteCond%{REQUEST_FILENAME}-dRewriteRule^-[L]RewriteRule^([_0-9a-zA-Z-]+/)?(wp-(c

  10. ruby-on-rails - rails : accessing field value from model method - 2

    刚开始学习Rails(三)。我正在努力寻找如何做一些可能完全微不足道的事情:从该模型的方法内部访问模型实例字段的值。以我为例:defformal_name@title+""+@forename+""+@surnameend所有三个@properties(它们都是数据库中表上的字段)都返回nil。他们不应该。令人难以置信的是,http://guides.rails.info/并未讨论如何访问字段,google什么也找不到。顺便说一句,我来自Django,这里的东西很明显。 最佳答案 @语法用于实例变量,这些实例变量(例如)在Contr

随机推荐