【问题标题】:Wordpress Feed - Content Type is automatically changingWordpress Feed - 内容类型会自动更改
【发布时间】:2021-07-27 13:28:14
【问题描述】:

我已经为我的 wordpress 页面创建了一个自定义 rss/xml 提要来列出某些工作 - 它可以工作,除了内容类型会自动更改并且非常随意地从 rss/xml 更改为 text/html,这使得无法获取正确进给。我真的不知道为什么或如何重现该问题。

代码有问题吗?我不这么认为——可能是由于服务器的错误配置或类似的原因。

代码如下:

class KIE_XML_Feed{

  public function __construct()
  {
    add_action( 'init', array( $this, 'kie_add_xml_job_feeds' ) );
    add_filter( 'feed_content_type', array( $this, 'kie_feed_type'), 10, 2 );
  }

  function kie_add_xml_job_feeds() {
    add_feed( 'joblift', array( $this, 'kie_render_joblift_job_feed' ) );
  }

  function kie_feed_type( $content_type, $type ) {
    if ( 'joblift' === $type ) {
      return feed_content_type( 'rss' );
    }
    return $content_type;
  }


  /*
  *
  * Joblift
  *
  */

  function kie_render_joblift_job_feed() {
    header( 'Content-Type: application/rss+xml ; charset=' . get_option( 'blog_charset' ), true );
    echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>';

    // Start feed
    ?><feed xmlns="http://www.w3.org/2005/Atom"><?php

    // Query
    $job_query = new WP_Query( [
      'post_type'      => 'jobs',
      'posts_per_page' => -1,
      'meta_query' => array(
        array(
          'key' => 'kie_xml_feed_joblift',
          'value' => '1',
          'compare' => '=',
          'type' => 'numeric'
        )
      )
    ]);

    // Loop
    if ( $job_query->have_posts() ) {
      while ( $job_query->have_posts() ) {
        $job_query->the_post();
        get_template_part( 'partials/feeds/joblift' );
      }
    }

    // End feed
    ?></feed><?php

    // Reset
    wp_reset_postdata();
  }
}

提前谢谢你。

【问题讨论】:

  • this comment - 你应该使用feed_content_type钩子或函数header(),但不能同时使用..
  • 谢谢,我已经解决了,但问题仍然存在。
  • 您怎么知道提要的内容类型有时是 HTML?应用修复后,您是否尝试过清除缓存?
  • 是的,我确实清除了缓存 - 这是给你的屏幕ibb.co/NsM6XBd
  • 感谢您的回答,我想我已经解决了。是的,指定的提要无效,但这不是问题所在。 Wordpress 显然在不同的 URL 下提供创建的提要,即以下一个 kennt-ihr-einen.de/feed/joblift - 所以,为了简单起见 - 我忘记了 URL 中的 /feed/

标签: php xml wordpress rss feed


【解决方案1】:

我想我修好了。 WordPress 显然在我认为的不同 URL 下提供创建的提要,即以下 URL:kennt-ihr-einen.de/feed/joblift。所以,为了简单起见,我忘记了 URL 中的/feed/

【讨论】:

    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多