您所要求的permalink结构中有问题的部分是permalinks,如
/marketing-lists/{$something}/
 有时候
$something 应该是一个类别,有时是一个页面标记。
因此,要使其正常工作,您应该运行数据库查询以了解$something 是,这会降低性能
之后,如果urlexample.com/marketing-lists/viral-marketing 你有一页写着slugviral-marketing 和一个带有slug的类别viral-marketing WordPress应该显示什么,页面还是类别存档?
即使运行db查询,您也会找到一个页面和一个包含该段代码的类别,那么谁会赢呢?
此外,使用标准的WordPress重写规则,您的工作将非常困难。。。因为会发生很多冲突。
我开发了一个插件,Clever Rules 可以为您的任务提供很大帮助,但是,同样,没有db查询是不可能的/marketing-lists/ 是一个页面slug或一个类别。。。
使用该插件,该代码应该可以工作,但它需要db查询,如果发生冲突,page slug将获胜:
/*
 * Plugin Name: My Custom Rules
 */
add_action(\'plugins_loaded\', \'register_my_rules\');
add_filter(\'skip_clever_rule\', \'rule_pages_for_pages\', 20, 3);
function register_my_rules() {
    if ( ! function_exists(\'register_clever_rule\') ) return;
    $args = array( \'id\' => \'rule_pages\',\'route\' => \'/marketing-lists/%s\');
    register_clever_rule( $args )->query(\'pagename=[0]\')->priority(1);
    $args = array( \'id\' => \'rule_cats\',\'route\' => \'/marketing-lists/%s\');
    register_clever_rule( $args )->query(\'category_name=[0]\')->priority(2);
    $args = array( \'id\' => \'rule_singles\',\'route\' => \'/marketing-lists/%s/%s/\');
    register_clever_rule( $args )->query(\'name=[1]\');
}
function rule_pages_for_pages( $skip, $rule, $pieces ) {
  if ( $rule[\'args\'][\'id\'] === \'rule_pages\' ) {
    global $wpdb;
    $pages = $wpdb->get_col("SELECT post_name FROM $wpdb->posts WHERE post_type = \'page\' AND post_status = \'publish\'");
    if ( ! in_array( $pieces[1], $pages ) ) $skip = true;
  }
  return $skip;
}
 请注意,该代码位于
plugin 而且不能在主题中工作。