Wordpress:完全替换the_content

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wordpress:完全替换the_content相关的知识,希望对你有一定的参考价值。

我有一个新闻帖的集合,我添加了一个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;
});
答案

动作rss2_item只允许您向现有订阅源项添加节点,您无法删除节点:

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

您需要的可能是自定义Feed模板,可以使用钩子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 );

以上是关于Wordpress:完全替换the_content的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 将过滤器添加到 the_content()

Wordpress:single.php 不显示 the_content()

PHP 通过单词限制WordPress the_content

Wordpress:自动更改 the_content 部分中的 URL

php 将Featherlight JS添加到WordPress发布the_content

在 Wordpress the_content() 中包含高级自定义字段 (ACF)