$POST->ID调用当前页面,但在WordPress中创建和发布的任何新页面调用什么代码?

时间:2017-12-20 作者:Bari

虽然可能有另一种或更好的方法可以做到这一点,但我所需要的只是这最后一段代码,让它完全符合我的需要。所以,我希望这里的任何人都能并且愿意帮助我让它在我需要的时候工作?

首先,在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中创建和发布的任何新页面的代码是什么?

2 个回复
SO网友:Johansson

若要查找每个已发布页面的ID,那个么需要查询所有页面。为此,编写一个简单的查询,从数据库中获取每个页面:

$args = [
    \'post_type\'      => \'page\',
    \'posts_per_page\' => -1 // Query all pages
];

$pages = new WP_Query( $args );
现在,在查询的页面中运行一个循环,并使用它们的ID。最好使用get_the_ID() 检索ID,而不是处理全局变量。以下是如何:

// Define an array to use in the loop
$ids = array();
// Run a loop and check if it has any pages/posts
if( $pages->have_posts() ) {
    while ( $pages->have_posts() ) {
        $pages->the_post();
        // Add the current page ID to the array
        $ids[] = get_the_ID();
    }
}
现在,在$ids 变量

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 );
}

结束