Php 使自定义字段图像附件工作-WordPress
我正在为一个已经存在的WordPress网站添加一些功能。这个网站不是我写的,我只是简单地调整了已有的代码 我正在尝试添加一个图像,它位于我们其中一个模板上的一些手风琴下拉列表上方。 我已经能够将自定义字段添加到custom_fields.php文件中,它显示在WP Admin端,但是我不知道如何使图像显示在浏览器中 我试图添加的图像命名为“手风琴图像” 自定义字段:Php 使自定义字段图像附件工作-WordPress,php,wordpress,Php,Wordpress,我正在为一个已经存在的WordPress网站添加一些功能。这个网站不是我写的,我只是简单地调整了已有的代码 我正在尝试添加一个图像,它位于我们其中一个模板上的一些手风琴下拉列表上方。 我已经能够将自定义字段添加到custom_fields.php文件中,它显示在WP Admin端,但是我不知道如何使图像显示在浏览器中 我试图添加的图像命名为“手风琴图像” 自定义字段: Carbon_Container::factory('custom_fields', __('Info Page Titles'
Carbon_Container::factory('custom_fields', __('Info Page Titles', 'domain'))
->show_on_post_type('page')
->show_on_template('template-info.php')
->add_fields(array(
Carbon_Field::factory('text', 'info_subtitle'),
));
Carbon_Container::factory('custom_fields', __('Accordions Section', 'domain'))
->show_on_post_type('page')
->show_on_template('template-info.php')
->add_fields(array(
Carbon_Field::factory('text', 'acc_section_title', 'Section Title'),
Carbon_Field::factory('complex', 'accordions')
->add_fields(array(
Carbon_Field::factory('text', 'accordions_title'),
Carbon_Field::factory('complex', 'accordion')
->add_fields(array(
Carbon_Field::factory('attachment', 'accordion_image')
->set_required(true),
Carbon_Field::factory('text', 'accordion_head')
->set_required(true),
Carbon_Field::factory('textarea', 'accordion_content')
->set_required(true),
)),
)),
));
模板中的标记:
<?php
$acc_section_title = carbon_get_the_post_meta('acc_section_title');
$section_accordions = carbon_get_the_post_meta('accordions', 'complex');
if (!empty($section_accordions) && is_array($section_accordions)): ?>
<div class="col-right">
<?php if ($acc_section_title): ?>
<h4><?php echo esc_html($acc_section_title); ?></h4>
<?php endif ?>
<div class="faq">
<?php foreach ($section_accordions as $counter => $accordions):
$accordions_title = $accordions['accordions_title'];
if ($accordions_title): ?>
<h5><?php echo esc_html($accordions_title) ?></h5>
<?php endif ?>
<?php if (!empty($accordions['accordion']) && is_array($accordions['accordion'])): ?>
<div class="accordion">
<?php foreach ($accordions['accordion'] as $acc_counter => $accordion): ?>
<div class="accordion-section">
<?php
$accordion_image = $accordion['accordion_image'];
$accordion_head = $accordion['accordion_head'];
$accordion_content = $accordion['accordion_content'];
if ($accordion_image): ?>
<div class="accordion-img">
<?php echo esc_html($accordion_image) ?>
</div><!-- /.accordion-img -->
<?php endif ?>
if ($accordion_head): ?>
<div class="accordion-head">
<?php echo esc_html($accordion_head) ?>
</div><!-- /.accordion-head -->
<?php endif ?>
<?php if ($accordion_content): ?>
<div class="accordion-body">
<?php echo wpautop($accordion_content); ?>
</div><!-- /.accordion-body -->
<?php endif ?>
</div><!-- /.accordion-section -->
<?php endforeach ?>
</div><!-- /.accordion -->
<?php endif ?>
<?php endforeach ?>
</div><!-- /.faq -->
</div><!-- /.col-right -->
<?php endif ?>
如果($手风琴头):?>
我只是在学习php,如果这是一个愚蠢的问题,我很抱歉。
谢谢大家的帮助 看起来这个问题是一个语法问题的混合体……还有一个简单的问题,就是你在回显图像的ID,而不是输出图像本身。而不是
echo esc\u html($accordion\u image)
,您要使用to回显wp\u get\u attachment\u图像(esc\u html($accordion\u image),“full”)代码>像这样:
$acc_section_title = carbon_get_the_post_meta('acc_section_title');
$section_accordions = carbon_get_the_post_meta('accordions', 'complex');
if (!empty($section_accordions) && is_array($section_accordions)): ?>
<div class="col-right">
<?php if ($acc_section_title): ?>
<h4><?php echo esc_html($acc_section_title); ?></h4>
<?php endif; ?>
<div class="faq">
<?php foreach ($section_accordions as $counter => $accordions):
$accordions_title = $accordions['accordions_title'];
if ($accordions_title): ?>
<h5><?php echo esc_html($accordions_title); ?></h5>
<?php endif; ?>
<?php if (!empty($accordions['accordion']) && is_array($accordions['accordion'])): ?>
<div class="accordion">
<?php foreach ($accordions['accordion'] as $acc_counter => $accordion): ?>
<div class="accordion-section">
<?php
$accordion_image = $accordion['accordion_image'];
$accordion_head = $accordion['accordion_head'];
$accordion_content = $accordion['accordion_content'];
if ($accordion_image): ?>
<div class="accordion-img">
<?php echo wp_get_attachment_image( esc_html($accordion_image), 'full' ); ?>
</div><!-- /.accordion-img -->
<?php endif; ?>
<?php if ($accordion_head): ?>
<div class="accordion-head">
<?php echo esc_html($accordion_head); ?>
</div><!-- /.accordion-head -->
<?php endif; ?>
<?php if ($accordion_content): ?>
<div class="accordion-body">
<?php echo wpautop($accordion_content); ?>
</div><!-- /.accordion-body -->
<?php endif; ?>
</div><!-- /.accordion-section -->
<?php endforeach; ?>
</div><!-- /.accordion -->
<?php endif; endforeach; ?>
</div><!-- /.faq -->
</div><!-- /.col-right -->
<?php endif; ?>
$acc_section_title=carbon_get_the_post_meta('acc_section_title');
$section_accordions=carbon_get_the_post_meta('accordions','complex');
如果(!empty($section\u accordions)&&is\u数组($section\u accordions)):?>
什么是“Carbon”呢?这是开发人员使用的某种元库:Carbon fields是一个库,用于在WordPress管理面板中轻松创建自定义(元)字段。它允许主题开发者将元信息与WordPress站点中的各种实体(如帖子、分类术语、小部件等)关联起来?是不是只有附件部分的标题没有?是的,手风琴正在展示。。。在我尝试添加代码以显示手风琴图像之前,一切都正常。这段代码破坏了所有内容,没有生成任何html……只是一个空白页面。尝试替换当前的carbon\u get\u post\u meta(“acc\u section\u title”)代码>带有get_post_meta(get_ID(),'acc_section_title',true)代码>