在WordPress中,如何在slug中创建一个带有作者姓名的自定义帖子类型?

时间:2010-10-20 17:43:07

标签: wordpress url-rewriting

我正在使用register_post_type构建一个新的WordPress主题,以创建一个名为“列表”的自定义帖子类型。

我希望每个商家信息都有以下永久链接结构:

http://www.mysite.com/post-author/listing-title

我不太确定如何使用法典中列出的CPT控制来实现这一目标。任何帮助或链接将不胜感激!

1 个答案:

答案 0 :(得分:0)

实际上,您需要定义自己的自定义网址重写规则才能实现此目标...... 自定义帖子的内置功能。有good example in the Codex可以让你入门。

这是一个快速的未经测试的首先想到你如何做到这一点:

add_filter('rewrite_rules_array','wp_insertMyRewriteRules');
add_filter('query_vars','wp_insertMyRewriteQueryVars');
add_filter('init','flushRules');

// Remember to flush_rules() when adding rules
function flushRules(){
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

// Adding a new rule
function wp_insertMyRewriteRules($rules)
{
    $newrules = array();
    $newrules['([^/]+)/([^/]+)$'] = 'index.php?author=$matches[1]&listing-title=$matches[2]';
    return $newrules + $rules;
}

// Adding the id var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
    array_push($vars, 'listing-title');
    return $vars;
}

应该指向从http://www.mysite.com/me/my-listinghttp://www.mysite.com/index.php?author=me&listing-title=my-listing的所有链接。在WordPress得到它之后处理查询完全取决于你。