我们可以创建一个可从此处访问的自定义提要:
example.tld/kellyspagefeed/
并且只显示页面,而不显示帖子。
我们可以试着重写最近的答案here, 使用以下演示插件:
<?php
/**
* Plugin Name: Kelly\'s Page Feed
* Description: Accessible from the /kellyspagefeed slug
* Plugin URI: https://wordpress.stackexchange.com/a/209244/26350
*/
// Add the custom rss2 feed
add_action( \'init\', \'wpse_init\' );
// Set the \'page\' post type for the custom feed
add_action( \'pre_get_posts\', function( \\WP_Query $q )
{
if( $q->is_feed( \'kellyspagefeed\' ) )
$q->set( \'post_type\', \'page\' );
} );
// Add our rewrite rules and flush only during plugin activation
register_activation_hook( __FILE__, \'wpse_init\' );
// House cleaning during plugin deactivation - remove our rewrite rules
register_deactivation_hook( __FILE__, \'flush_rewrite_rules\' );
// Helper function
function wpse_init()
{
add_feed( \'kellyspagefeed\', \'do_feed_rss2\' );
if( \'init\' !== current_filter() )
flush_rewrite_rules();
}
请注意:
register_activation_hook( __FILE__, \'flush_rewrite_rules\' );
在这里行不通,因为我们必须刷新重写规则
after 我们添加了自定义提要重写规则
add_feed()
.
这就是为什么我介绍wp_init()
助手函数:
register_activation_hook( __FILE__, \'wpse_init\' );
确保重写规则不会在
init
钩这种刷新非常昂贵,所以我们只想在激活或停用演示插件时进行。
希望你能根据自己的需要调整,