| 1 | // Register custom post type
|
|---|
| 2 | function create_post_type() {
|
|---|
| 3 | register_post_type( 'custom_news',
|
|---|
| 4 | array(
|
|---|
| 5 | 'labels' => array(
|
|---|
| 6 | 'name' => __( 'News' ),
|
|---|
| 7 | 'singular_name' => __( 'News' )
|
|---|
| 8 | ),
|
|---|
| 9 | 'public' => true,
|
|---|
| 10 | 'has_archive' => true,
|
|---|
| 11 | 'exclude_from_search' => false,
|
|---|
| 12 | 'supports' => array('title', 'editor', 'revisions', 'author', 'excerpt', 'thumbnail'),
|
|---|
| 13 | 'rewrite' => array('slug' => 'news', 'with_front' => 'false')
|
|---|
| 14 | )
|
|---|
| 15 | );
|
|---|
| 16 |
|
|---|
| 17 | }
|
|---|
| 18 | add_action( 'init', 'create_post_type' );
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 | // Create custom feed from template
|
|---|
| 25 | function create_newsfeed() {
|
|---|
| 26 | load_template( TEMPLATEPATH . '/news-feed.php');
|
|---|
| 27 | }
|
|---|
| 28 |
|
|---|
| 29 | // Replace default feed rewrite rules
|
|---|
| 30 | function customise_feed_rules($rules) {
|
|---|
| 31 | // Remove all feed related rules
|
|---|
| 32 | $filtered_rules = array_filter($rules, function($rule) {
|
|---|
| 33 | return !preg_match("/feed/i", $rule);
|
|---|
| 34 | });
|
|---|
| 35 | // Add the rule(s) for your custom feed(s)
|
|---|
| 36 | $new_rules = array(
|
|---|
| 37 | 'feed/newsfeed' => 'index.php?feed=newsfeed'
|
|---|
| 38 | );
|
|---|
| 39 | return $new_rules + $filtered_rules;
|
|---|
| 40 | }
|
|---|
| 41 |
|
|---|
| 42 | // Add the custom feed and update rewrite rules
|
|---|
| 43 | function add_newsfeed() {
|
|---|
| 44 | global $wp_rewrite;
|
|---|
| 45 | add_action('do_feed_newsfeed', 'create_newsfeed', 10, 1);
|
|---|
| 46 | add_filter('rewrite_rules_array','customise_feed_rules');
|
|---|
| 47 | $wp_rewrite->flush_rules();
|
|---|
| 48 | }
|
|---|
| 49 |
|
|---|
| 50 | add_action('init', 'add_newsfeed');
|
|---|
| 51 |
|
|---|
| 52 |
|
|---|