|
<?php |
|
|
|
function wtnerd_edition_specific_categories() { |
|
|
|
/* |
|
Rewrite e.g.: |
|
|
|
`example.com/?category_name=uk&channel=tech&feed=rss2` as `example.com/uk/channel/tech/feed/rss2/` |
|
|
|
`example.com/?category_name=uk&channel=tech&feed=rss2` as `example.com/uk/channel/tech/feed/` |
|
|
|
`example.com/?category_name=uk&channel=tech&paged=2` as `example.com/uk/channel/tech/page/2/` |
|
|
|
`example.com/?category_name=uk&channel=tech` as `example.com/uk/channel/tech/` |
|
*/ |
|
|
|
add_rewrite_rule( '(.+?)/channel/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$', 'index.php?category_name=$matches[1]&channel=$matches[2]&feed=$matches[3]', 'top' ); |
|
|
|
add_rewrite_rule( '(.+?)/channel/(.+?)/(feed|rdf|rss|rss2|atom)/?$', 'index.php?category_name=$matches[1]&channel=$matches[2]&feed=$matches[3]', 'top' ); |
|
|
|
add_rewrite_rule( '(.+?)/channel/(.+?)/page/?([0-9]{1,})/?$', 'index.php?category_name=$matches[1]&channel=$matches[2]&paged=$matches[3]', 'top' ); |
|
|
|
add_rewrite_rule( '(.+?)/channel/(.+?)/?$', 'index.php?category_name=$matches[1]&channel=$matches[2]', 'top' ); |
|
|
|
|
|
/* |
|
Rewrite e.g.: |
|
|
|
`example.com/?category_name=uk&tag=linux&feed=rss2` as `example.com/uk/section/linux/feed/rss2/` |
|
|
|
`example.com/?category_name=uk&tag=linux&feed=rss2` as `example.com/uk/section/linux/feed/` |
|
|
|
`example.com/?category_name=uk&tag=linux&paged=2` as `example.com/uk/section/linux/page/2/` |
|
|
|
`example.com/?category_name=uk&tag=linux` as `example.com/uk/section/linux/` |
|
*/ |
|
|
|
add_rewrite_rule( '(.+?)/section/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$', 'index.php?category_name=$matches[1]&tag=$matches[2]&feed=$matches[3]', 'top' ); |
|
|
|
add_rewrite_rule( '(.+?)/section/(.+?)/(feed|rdf|rss|rss2|atom)/?$', 'index.php?category_name=$matches[1]&tag=$matches[2]&feed=$matches[3]', 'top' ); |
|
|
|
add_rewrite_rule( '(.+?)/section/(.+?)/page/?([0-9]{1,})/?$', 'index.php?category_name=$matches[1]&tag=$matches[2]&paged=$matches[3]', 'top' ); |
|
|
|
add_rewrite_rule( '(.+?)/section/(.+?)/?$', 'index.php?category_name=$matches[1]&tag=$matches[2]', 'top' ); |
|
} |
|
add_action( 'init', 'wtnerd_edition_specific_categories' ); |
|
|
|
|
|
// THE SAME CAN BE DONE LIKE THIS (BUT ABOVE METHOD IS RECOMMENDED) |
|
|
|
|
|
function wtnerd_edition_specific_categories( $wp_rewrite ) { |
|
$rewrite_rules = array( |
|
'(.+?)/channel/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&channel='. $wp_rewrite->preg_index(2) .'&feed='. $wp_rewrite->preg_index(3), |
|
|
|
'(.+?)/channel/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&channel='. $wp_rewrite->preg_index(2) .'&feed='. $wp_rewrite->preg_index(3), |
|
|
|
'(.+?)/channel/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&channel='. $wp_rewrite->preg_index(2) .'&paged='. $wp_rewrite->preg_index(3), |
|
|
|
'(.+?)/channel/(.+?)/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&channel='. $wp_rewrite->preg_index(2), |
|
|
|
'(.+?)/section/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&tag='. $wp_rewrite->preg_index(2) .'&feed='. $wp_rewrite->preg_index(3), |
|
|
|
'(.+?)/section/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&tag='. $wp_rewrite->preg_index(2) .'&feed='. $wp_rewrite->preg_index(3), |
|
|
|
'(.+?)/section/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&tag='. $wp_rewrite->preg_index(2) .'&paged='. $wp_rewrite->preg_index(3), |
|
|
|
'(.+?)/section/(.+?)/?$' => 'index.php?category_name='. $wp_rewrite->preg_index(1) .'&tag='. $wp_rewrite->preg_index(2) |
|
); |
|
$wp_rewrite->rules = $rewrite_rules + $wp_rewrite->rules; |
|
} |
|
add_filter( 'generate_rewrite_rules', 'wtnerd_edition_specific_categories' ); |
|
|
|
|
|
// OR LIKE THIS |
|
|
|
|
|
function wtnerd_edition_specific_categories( $wp_rewrite ) { |
|
$rewrite_rules = array( |
|
'(.+?)/channel/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&channel=$matches[2]&feed=$matches[3]', |
|
'(.+?)/channel/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&channel=$matches[2]&feed=$matches[3]', |
|
'(.+?)/channel/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&channel=$matches[2]&paged=$matches[3]', |
|
'(.+?)/channel/(.+?)/?$' => 'index.php?category_name=$matches[1]&channel=$matches[2]', |
|
|
|
'(.+?)/section/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&tag=$matches[2]&feed=$matches[3]', |
|
'(.+?)/section/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&tag=$matches[2]&feed=$matches[3]', |
|
'(.+?)/section/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&tag=$matches[2]&paged=$matches[3]', |
|
'(.+?)/section/(.+?)/?$' => 'index.php?category_name=$matches[1]&tag=$matches[2]' |
|
); |
|
|
|
$wp_rewrite->rules = $rewrite_rules + $wp_rewrite->rules; |
|
} |
|
add_filter( 'generate_rewrite_rules', 'wtnerd_edition_specific_categories' ); |