2016-11-10 97 views
0

我有一个业务目标,强制我在URL已被确定后尝试更改全局wordpress查询,但在模板开始输出原始帖子上下文中的变量之前。我需要能够使用插件检查原始帖子上的某些元值,然后更改查询以表示另一个帖子对象,以便在不更改网址的情况下显示不同的数据。在模板之前设置wordpress查询

我试过使用setup_postdata()什么似乎无处不在。

(tried including wp_reset_query();) 
global $post; 
$post = get_post(145, OBJECT); 
setup_postdata($post); 

但是,该模板仍在输出原始查询。

我接受其他解决方案。提前致谢。

+0

请更多背景。你把这个代码放在哪里?在模板中?的functions.php?其他地方?这段代码如何触发? –

+0

所以,我已经通过使用query_posts来了解这个问题(请参阅其他答案),但是,无论何时使用页面,这都会破坏模板。 –

+0

如果您好奇,请参阅下面的答案。我只需要页面的帖子和page_id。当这些设置正确时,请遵循下面的模板 –

回答

0
add_action('wp_loaded', function(){ 
    query_posts(array('p'=>145,'post_type' =>'any')); 
}); 

这工作得很好。它可以添加到任何地方。但是,它会弄乱页面模板,并显示页面,就好像它们是single.php一样!如果我可以解决这个问题,那么我的状态会很好。帮帮我?

编辑:得到它的工作。我必须检查和使用p的职位,和page_id的网页。只要这些设置,模板将遵循正确。否则,它试图将标准发布模板应用于页面。

+0

我猜这可能不是您实际完成之后实现的方式。您应该发布您的完整答案,因为您的问题提及检查元值等。让我们看看您在做什么,也许我们可以帮助以更高效/“最佳实践”的方式做到这一点? –