我想将CTP中创建的自定义字段回显到窗口小部件。
我通常会使用类似下面的内容从页面ID中调用字段,但由于我的CTP使用了slug而不是ID,我正在寻找有关如何执行此操作的建议。
<?php
$other_page = 173;
?>
<?php the_field('shop_content_box', $other_page); ?>
提前致谢!
答案 0 :(得分:0)
实际上,任何CPT都有自己的slu ..非自定义帖子类型(例如帖子,页面或附件)的方式与他们相同(分别为post
,page
和attachment
)。
但请注意不要将自定义帖子类型 与该类型的实际帖子混淆。 Wordpress中的任何帖子(当然包括CPT的帖子)都有一个ID。如果您想使用任何其他帖子/页面的ACF get_field
或the_field
查询自定义字段值,您必须使用该ID,如您的示例所示:
<?php the_field('shop_content_box', $other_page); ?>
所以,如果你只知道$other_page_slug
(我想知道你如何单独使用slug ...)你应该检索它的Post对象。请参阅:Get a post by its slug。
<?php
function the_field_by_slug( $field, $slug, $cpt = 'post' ) {
$args = [
'name' => $slug,
'post_type' => $cpt,
'post_status' => 'publish',
'posts_per_page' => 1
];
$my_post = get_posts( $args );
if( $my_post ) {
the_field( $field, $my_post->ID );
}
}
the_field_by_slug( 'shop_content_box', $other_post_slug, $custom_post_type_slug );
?>