虽然可能有另一种或更好的方法可以做到这一点,但我所需要的只是这最后一段代码,让它完全符合我的需要。所以,我希望这里的任何人都能并且愿意帮助我让它在我需要的时候工作?
首先,在WP后端,我创建并发布了一个空白页面(使用自定义模板),这是我调制的配方奶粉的一个必需部分。
每次在WP后端创建新页面时,空白页面(自定义模板php文件)都需要从新创建的页面抓取并显示“object1”。因此,每当在WP后端创建新页面时,该新页面的“object1”将被拉入已发布页面。我如何做到这一点?以下是我正在使用的代码:
<?php the_field(\'object1\', /*code for any newly created page rather than a specific number*/ ); ?>
对于任何新创建的页面,“object1”之后要输入的代码是什么?
我通过反复试验了解到,这些并不能产生我所需要的结果:
<?php the_field(\'object1\'); ?>
^^上述代码导致仅从当前页面获取“object1”,该页面是空白页面(自定义模板)。
<?php the_field(\'object1\', 3 ); ?>
^^上述代码导致从url中帖子id为3的页面获取“object1”。
<?php the_field(\'object1\', $post->ID ); ?>
^^上述代码导致仅从当前页面获取“object1”,该页面是空白页面(自定义模板)。
非常感谢您的指导。
<小时>$post->ID
调用当前页面,但在WordPress中创建和发布的任何新页面的代码是什么?
SO网友:Jacob Peattie
如果需要检索发布的最后一个页面的ID,则没有单独的函数。您需要使用检索最新页面get_posts()
并获取第一个结果的ID。get_posts()
已经按日期排序,所以您只需告诉它获取页面,而不是帖子,只获取一个,然后获取ID:
$page_ids = get_posts( array(
\'post_type\' => \'page\',
\'numberposts\' => 1,
\'fields\' => \'ids\',
) );
get_posts()
返回一个数组,因此我们需要确保结果不是空的,如果不是,则使用第一个结果:
$page_ids = get_posts( array(
\'post_type\' => \'page\',
\'numberposts\' => 1,
\'fields\' => \'ids\',
) );
if ( ! empty( $latest_page ) ) {
the_field( \'object1\', $latest_page[0] );
}
如果您需要显示
object1
所有页面的字段,您不能只给出
the_field()
它自动执行此操作的值。您需要检索所有帖子的ID,然后在其上循环,输出每个帖子的字段。您可以通过将帖子数量更改为
-1
(无限)并使用
foreach
回路:
$page_ids = get_posts( array(
\'post_type\' => \'page\',
\'numberposts\' => -1,
\'fields\' => \'ids\',
) );
foreach ( $page_ids as $page_id ) {
the_field( \'object1\', $page_id );
}