WordPress的:完全取代the_content

时间:2018-09-18 11:27:34

标签: php xml wordpress rss feed

我有一组新闻帖子,并且添加了一个Guid(帖子ID的sha1),我想将标签包含在feed中(使其更易于显示在网页上)。

但是,当我更新'description'标签时,它只是将其添加到响应中,而不是删除它,因此我在json_encode之后得到以下内容:

"description": [
    "header subheader the original text with no tags",    // want to remove if possible.
    {
       "h1": "header",
       "h3": "subheader",
       "p": [
           "the original text",
           "with no tags",
       ]
    }

]

这是我的代码:

add_action('rss2_item', function(){
  global $post;

  $output = '';
  $output .= '<id>' . sha1($post->ID) . '</id>';
  $output .= '<description>' . wpautop( $post->post_content ) . '</description>';

  echo $output;
});

1 个答案:

答案 0 :(得分:0)

操作rss2_item仅允许您将节点添加到现有的提要项中,而不能删除节点:

  

在rss2 feed的默认输出之后,立即触发rss2_item操作挂钩。

您可能需要一个自定义的提要模板,可以通过钩子do_feed_rss2实现。来自Codex

function my_custom_rss() {

    if ( 'photos' === get_query_var( 'post_type' ) ) {
        get_template_part( 'feed', 'photos' );
    } 
    else {
        get_template_part( 'feed', 'rss2' );
    }
}
remove_all_actions( 'do_feed_rss2' );
add_action( 'do_feed_rss2', 'my_custom_rss', 10, 1 );