相关产品 ACF WordPress
Posted
技术标签:
【中文标题】相关产品 ACF WordPress【英文标题】:Related Products ACF WordPress 【发布时间】:2015-07-27 08:24:51 【问题描述】:我没有使用 WooCommerce 插件,只是您的普通网站。
我有一个页面,我需要让用户选择一些“相关产品”。
现在,我正在使用 ACF,并考虑使用 Post_Object 来允许用户选择产品。
这需要做的是获取产品名称,同时获取产品图像和描述。
我已使用 ACF 网站上的这段代码来尝试获取帖子对象的标题。
<?php
$post_object = get_field('post_object');
if( $post_object ):
// override $post
$post = $post_object;
setup_postdata( $post );
?>
<div>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<span>Post Object Custom Field: <?php the_field('field_name'); ?></span>
</div>
<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>
但即使这样也不会显示任何内容?
是否有任何人可以看到的明显问题?
【问题讨论】:
您允许多选吗?这可能会改变代码的工作方式,在我回答之前我需要知道这一点。 对不起,你什么意思? 在您的“相关产品”帖子对象字段的字段设置中,有一个名为“选择多个值?”的选项。您是否将其设置为是或否。如果设置为是,并且您希望能够选择多个相关产品,这将更改您要使用的代码。 抱歉,是的,我将拥有不止 1 个 :) 【参考方案1】:由于您允许多选,get_field 将返回一个帖子对象数组。因此,您需要使用以下代码遍历该数组。此代码假定您的帖子对象字段名为“related_products”,然后调用帖子的摘录值,该值将首先检查摘录字段,如果不存在,则会从帖子的内容生成摘录。
$related_products = get_field('related_products');
if( $related_products ): ?>
<ul>
<?php foreach( $related_products as $post): // variable must be called $post (IMPORTANT) ?>
<?php setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</li>
<?php endforeach; ?>
</ul>
<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif;
【讨论】:
这现在让我可以 dd 一个产品,这很棒。不过描述不一样。我使用自定义帖子类型摘录进行描述,甚至只是实际描述都会很棒。我需要基本上得到产品,并由此得到产品的描述 太棒了。如果此解决方案解决了您的问题,请务必接受答案,以帮助其他有类似问题的人。 对不起,按错了! 我对 woocommerce 不太熟悉。产品描述是单独的自定义字段,还是只是帖子的内容字段? 我没有使用 WooCommerce,它只是一个自定义帖子类型以上是关于相关产品 ACF WordPress的主要内容,如果未能解决你的问题,请参考以下文章
在 WooCommerce 订单管理页面 (ACF) 中输出产品自定义字段
php 通过函数文件向woocommerce产品添加acf字段
php 通过函数文件向woocommerce产品添加acf字段