单个帖子的自定义主页?

问题描述:

这是一个关于专题框架的问题。如果这不是正确的地方,请忽略这一点。单个帖子的自定义主页?

我想问一下我该怎么做?我从父主题复制页面模板,并将其重命名为home.php,然后将其设置为主页的模板。然后我在functions.php中为thematic_above_indexloop()添加了一个钩子,但它似乎不起作用。这里是我的行动挂钩:

function show_single_post(){ 
    $i=0; // Initialize to Zero; 
    if (have_posts()) : 
    while (have_posts()) : the_post(); 
    if ($i==0) {$recentpostid = $post->ID; $i=$i+1;} 
    endwhile; 
    endif; 
    //get only the latest post 
    $posts = query_posts('p='.$recentpostid."'"); 
} 
add_action('thematic_above_indexloop', 'show_single_post'); 

不过,如果我直接嵌入该代码段为home.php,它的工作原理。我的动作钩子肯定有问题吗?我比较新使用钩子,请赐教。

+0

接受因为它不看起来像你得到你所需要的,也许你可以在StackExchange的姊妹网站发表您的问题WordPress的回答结果的所有参数? http://wordpress.stackexchange.com – MikeSchinkel 2010-11-07 21:40:02

+0

我在工作解决方案中添加了第二个答案。 – kevtrout 2010-11-08 17:33:20

由于hello世界功能的作品,我不得不相信你的功能是问题。

还有一个更简单的方式来获得单最新帖子:

function show_single_post(){ 
     query_posts('orderby=ID&order=desc&showposts=1'); 
    } 

    add_action('thematic_above_indexloop', 'show_single_post'); 

我与专题测试这一点,它显示在主页上的最后一个职位。试一试。

您可以检查出由query_postsCodex page

+0

这个工程!非常感谢!问题:$查询是全局变量的权利?它是查询对象的处理程序吗?如果是这样,你怎么没有使用它的功能?不应该是$ query-> query_posts()来代替吗? – adred 2010-11-09 04:45:18

+0

oops。 $查询处理程序不应传递给函数。那是我的一个老想法。对错误感到抱歉。我编辑了删除的答案。但是,是的,我的理解是$查询保存$查询对象。但是,不,你不需要像你所显示的那样使用它。 query_posts是一个模板标签,如the_content()。 – kevtrout 2010-11-09 11:58:13

+0

请参阅http://codex.wordpress.org/Function_Reference/WP_Query了解有关$ query和$ WP_Query整体的信息。有时在运行之前直接操作主查询会很有帮助。 query_posts使用您提供的字符串运行第二个查询。如果您发现自己永远不要使用默认的主查询并不断地创建自己的查询,那么您可能希望直接通过直接使用$ WP_Query类的函数来修改主查询。祝你好运。 – kevtrout 2010-11-09 12:36:33

我对Thematic不熟悉,所以我浏览了http://themeshaper.com/thematic/guide/的文档维基。我无法找到你在那里参考的动作。它是否从当前版本的框架中删除?

创建一个简单的“hellow world”函数来测试钩子是否被破坏,而您的代码被破坏。

function hello_world(){ 
    echo "hello world"; 
} 

add_action('thematic_above_indeloop', 'show_single_post'); 

如果您在主页上看到“hello world”,您将知道挂钩正在工作。如果没有,你可以肯定(你可能已经是)你的show_single_post函数没有被破坏。

+0

不,它存在于实际的主题中。该wiki不完整。是的,你的样本钩确实可以工作,但不幸的是我的样本不会。到目前为止,没有人在他们的论坛上有任何错误的概念。那个动作钩子似乎很麻烦...... – adred 2010-11-07 06:52:19