从另一个页面获取$POST对象

时间:2017-08-23 作者:Garland Briggs

这是一个相当简单的问题,所以我会尽量简短。

更新1:在此上下文中{page-structure} 意思是:page1/page1-1/page1-1-1/{...}.

更新2:为了进一步澄清,我想做同样的事情the ACF Post Object field 正在执行,但我想根据URL结构动态执行,如下所述。

我正在制作一个定制的多语言网站,具有双页面结构(带和不带/en). 任何页面位于mysite.com/en/{page-structure} 正在将其区域设置更改为en_US 而内容(ACF)是从以下位置的相应页面获取的mysite.com/{page-structure}. 根据区域设置显示不同的内容。

我怎样才能继续mysite.com/en/{page-structure} 自动从中获取$post对象mysite.com/{page-structure} (即没有en/)?

(目前我正在使用ACF通过重写字段请求从相应页面获取字段,但如果我可以动态更改$post对象,那么一切都会变得简单一些。)

3 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

这就是如何获得具有匹配路径的页面的post对象,减去/en 零件:

$page_path = get_page_uri( get_queried_object_id() ); // en/page/child-page
$target_page_path = str_replace( \'en/\', \'\', $page_path ); // page/child-page
$target_page = get_page_by_path( $target_page_path ); // WP_Post of target page.

SO网友:Anton Lukin

如果我正确理解了这个问题,正确的答案是url_to_postid 作用

然后,您可以通过以下方式设置帖子id:

global $post; 
$post = get_post($post_id, OBJECT);
setup_postdata($post);

// your code

wp_reset_postdata();

SO网友:Mostafa Soufi

使用$global 在您的$post

例如:

global $post;
echo $post->ID;

结束