在不引用帖子的情况下显示页面(如首页)

时间:2013-05-31 作者:Philipp

我创建了一个插件,添加了一个新的帖子类型awards. 每个奖项都附有多张投票,这些投票存储在插件创建的自定义表中。

现在,我需要显示两个不同的奖项概述页面:

“mysite.com/awards”-显示所有奖项的列表(简单)“mysite.com/vows”-显示所有投票的列表(问题)第一部分很简单:我创建了一个名为“archive award.php”的主题文件并显示列表。

I need help with the second case: A.vote 不是自定义帖子类型,因此我不能简单地创建archive-votes.php 文件此页面与posts表中的任何项目都没有任何关系。

我的想法是创建一个主题文件(例如。list-votes.php) 然后将其与自定义slug链接。所以这个鼻涕虫votes 将打开主题文件list-votes.php - 但我不知道怎么做。

在我看来,唯一不太好的解决方案是创建一个名为votes 然后在显示列表的页面上添加一个短代码。

1 个回复
最合适的回答,由SO网友:Philipp 整理而成

多亏toschos的提示,我才能解决这个问题。这是我使用的代码:

// Register the endpoint
function my_init() {
    add_rewrite_endpoint(\'votes\', EP_ALL);
}
add_action(\'init\', \'my_init\');


// Execute a function when the endpoint is called
function my_redirect() {
    global $wp_query;

    if (isset($wp_query->query_vars[\'votes\'])) {
        $wp_query->is_404 = false;
        add_filter( \'wp_title\', \'my_title_votes\', 10, 2 );
        // this will output the template-file "all-votes.php"
        get_template_part( \'all-votes\' );
        // Prevent WordPress from adding the front-page or 404 page to my output...
        die();
    }
}
add_action( \'template_redirect\', \'my_redirect\' );

function my_title_votes( $title, $sep ) {
    return \'Votes-Title \' . $sep . \' \' .  $title;
}
当我打开URL mysite时。com/vows/I获得自定义输出,即使没有包含该slug的页面:-)

结束

相关推荐

从分类对象获取ID和slug

我有一个自定义字段来选择一个类别(自定义分类法),然后我将显示其所有子类别的列表。当我将自定义字段作为“term\\u id”返回时,这可以正常工作然而我还想从这个选定的类别(父类别)中获取slug,这样我就可以链接到它的类别页面(我想我不能用ID链接到它)。所以我想也许我应该将自定义字段作为对象返回。这是它转储的内容: stdClass Object ( [term_id] => 122 [name] => Quick Release Watch Bands [slug] => fit