在我的帖子页面(常规帖子类型)中,我设置了一个ACF关系字段。在这个里面,我可以选择公司名称,这些名称都在directory_listings的职位类型下。
现在,我在directory listings页面上有以下代码,因此使用simply get_字段不起作用,因为这些值不在该页面上,而是在POST类型的其他位置。
因此不确定如何获取信息。
目录_LISTINGS post type下某个页面上的代码:
$posts = get_field('related_articles');
if( $posts ): ?>
<ul>
<?php foreach( $posts as $post): // variable must be called $post (IMPORTANT) ?>
<?php setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>
目前,我在公司编辑页面(目录列表)上设置了关系字段。它在执行以下操作时起作用:1)与此业务列表相关的帖子-
2) 我想从帖子编辑页面选择一个帖子将出现在上面的企业。我可以通过ACF将字段放在那里没有问题,但是让它实际显示我无法理解的结果。
如果我理解正确的话,这和我遇到的问题是一样的。就我而言,我更喜欢使用短代码。使用[acf field=“person”]
并将该字段作为关系字段,它只给了我该人员的ID,但我无法访问他们的字段。另一方面,使用[acf field=“last\u name”,post\u id=[acf field=“person”]
,这将是一个理想的解决方案,但它不起作用,因为wordpress解析器不允许嵌套短代码。
这就是为什么我设计了这个非常小的php解决方案:
function import_cf_from_cpt( $atts ) {
// import custom fields from other custom post types that are connected via a relationship to the calling custom post type
// shortcode: [import <field from calling CPT of type relationship> <field name from field from other CPT>]
// ex [import person last_name] --> Doe
$postID = do_shortcode("[acf field={$atts[0]}]");
// we use the first attribute to get the ID of the object
$postField = get_field($atts[1], $postID);
// next, using the ID we look for the field of the second attribute.
return $postField;
}
add_shortcode( 'import', 'import_cf_from_cpt' );
将其放置在函数中。php文件允许使用短代码
[导入人last_name]
例如从其他帖子导入字段值或任何其他组合。
如果它是您在查询中查找的自定义字段,那么您可以这样做:
<?php
$posts = get_field('related_articles');
if( $posts ): ?>
<ul>
<?php foreach( $posts as $post): // variable must be called $post (IMPORTANT) ?>
<?php setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_field('your_custom_field',$post); ?>
</li>
<?php endforeach; ?>
</ul>
<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>
get_field()有三个参数:
$field_name
:要检索的字段的名称. eg"page_content"(必需)$post_id
:输入值的特定帖子ID。默认为当前职位ID(不需要)。这也可以是选项/分类法/用户/etc$format_value
如果您只关心获取特定的帖子(您知道其中的ID),那么该键将是第二个参数($post\u ID
)。ACF并没有什么神奇之处。非常简单:meta_值
(即列出文章链接的目录)保存到每篇文章中(附在该文章的$post_id
)。
但是,在您的情况下,我们不知道我们想要获得的帖子的ID。
如果我们用一个简单的句子来解释你想做什么,那句话会像:
在目录列表
(自定义帖子类型)页面上显示/获取帖子,该页面具有指向该页面的元值
。
显然,您不能使用获取字段()
,因为您的问题与“获取字段”无关相反,您需要“找到具有特定字段的帖子”ACF在这方面有很好的文档。
对你来说幸运的是,WordPress附带了一个叫做WP_Query的很棒的类,以及一个叫做get_posts()的类似很棒的函数。所以回过头来看我们上面的句子并把它翻译成一个函数,我们想要:get_posts()
其中meta_key
有一个当前$post_id
的值
。
或者,更具体地说,在您的目录\u清单
页面上,您可以进行以下查询:
$related_articles = get_posts(array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'related_articles', // name of custom field
'value' => '"' . get_the_ID() . '"',
'compare' => 'LIKE'
)
)
));
if( $related_articles ):
foreach( $related_articles as $article ):
// Do something to display the articles. Each article is a WP_Post object.
// Example:
echo $article->post_title; // The post title
echo $article->post_excerpt; // The excerpt
echo get_the_post_thumbnail( $article->ID ); // The thumbnail
endforeach;
endif;
我使用ACF,有一个名为“关于”的页面模板,我的“关于我们”页面使用该模板。我还有一个主页模板,它使用我的“主页字段组”中的字段。我的“关于我们”页面显示“关于字段组”中的ACF字段以及我的“主页字段组”中的一些字段。 我从我的主页组通过引用以下php代码的ACF字段得到字段: 来自主页上的主页字段组,段落来自我的关于我们页面介绍字段,来自关于字段组。 我想做一些类似的事情,但从自定义帖子类型(不
我试图创建另一个类使用从ACF PRO的文本字段的值。 我有一个名为“投资组合”的自定义帖子类型,它有4个类别,ACF字段设置被添加到“分类等于类别”。 当我编辑一个类别时,我填写我想要得到的名称,然后显示如下: 如何从类别中获取ACF字段值? 其他信息:我的页面模板page-portfolio.php,我使用的是ACF中继器。 这是我的代码: 这是该类别ACF字段设置的屏幕截图,希望对您有所帮助
我有一个自定义后类型设置称为艺术家。每个单个艺术家是一个页面(艺术家个人资料,如果你愿意),有一个通过高级自定义字段(ACF)的关系字段类型与该艺术家相关联的产品列表。我需要产品在艺术家页面上显示在他们的类别中。因此,在Elementor中,我需要指定一个查询筛选器ID,以简单地将产品划分为类别。 到目前为止我所尝试的 我试图通过自定义查询仅显示列表中特定类别的产品,因为我需要生成查询ID。 我一
问题内容: 我想在其中自动创建的ManyToMany联接表中存储一些其他信息。我将如何在Django中做到这一点? 就我而言,我有两个表:“雇员”和“项目”。我要存储的是每个项目中每个员工每小时工作所获得的收入,因为这些价值并不相同。那么,我该怎么做呢? 我想到的是,不是使用方法“ ManyToManyField”,而是显式创建了一个第三类/表来存储这些新信息,并使用“ ForeignKey”方法
我使用ACF关系字段来显示每个产品的相关博客文章。目前它的工作,但我必须检查每个产品手动显示一个相关的职位上。 问题:我如何添加产品类别,这样我就不需要手动添加200个产品,但只有一个产品类别与这篇文章相关,并将在单一视图下显示这篇文章。 是否可以将其与分类ACF字段集成(如果post具有相关的分类产品,它将显示在该类别的产品下)?可惜想不出办法
我已经在WordPress的编辑帖子部分创建了一个自定义字段,并且能够通过以下帖子保存该值:Wordpress-将自定义字段添加到帖子屏幕。 我可以检索特定类别的帖子,但无法检索自定义字段的值。 如上图所示,在左上角高亮显示的位置有一个自定义的post字段。另一个突出显示的字段是显示帖子属于“公文包”类别。 下面是我用来检索“Portfolio”类别帖子的代码 我可以得到文章标题和内容的值,但不能