Php Wordpress提要-内容类型正在自动更改

Php Wordpress提要-内容类型正在自动更改,php,xml,wordpress,rss,feed,Php,Xml,Wordpress,Rss,Feed,我已经为我的wordpress页面创建了一个定制的rss/xml提要来列出某些作业——它可以工作,只是内容类型正在自动地、非常任意地从rss/xml更改为text/html,这使得无法正确获取提要。我真的不知道为什么或者如何重现这个问题 代码有问题吗?我不这么认为——可能是因为服务器配置错误之类的原因 代码如下: class KIE_XML_Feed{ public function __construct() { add_action( 'init', array( $thi

我已经为我的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();
  }
}

class KIE\u XML\u提要{
公共函数构造()
{
add_action('init',array('this,'kie_add_xml_job_feed'));
添加过滤器('feed_content_type',数组($this,'kie_feed_type'),10,2);
}
函数kie_add_xml_job_feeds(){
添加_提要('joblift',数组('kie_render_joblift_job_提要');
}
函数kie\u feed\u type($content\u type,$type){
如果('joblift'==$type){
返回提要内容类型(“rss”);
}
返回$content\u type;
}
/*
*
*工作电梯
*
*/
函数kie_render_joblift_job_feed(){
标题('Content Type:application/rss+xml;charset='.get_选项('blog_charset'),true);
回声';
//开始馈送
?> '1',
“比较”=>“=”,
'类型'=>'数值'
)
)
]);
//环路
如果($job\u query->have\u posts()){
而($job\u query->have\u posts()){
$job_query->the_post();
获取模板部分(“部分/提要/作业提升”);
}
}
//端进给

?>我想我已经修复了它。WordPress显然按照我的想法在不同的URL下提供了创建的提要,即以下URL:
kennt ihr einen.de/feed/joblift
。因此,为了简单起见,我忘记了URL中的
/feed/

请参见-您应该使用
提要内容类型
挂钩或函数
标题()
,但不是两者都有..谢谢,我解决了这个问题,但问题仍然存在。你怎么知道订阅源的内容类型有时是HTML?在你应用了这个解决方案后,你是否尝试清除缓存?是的,我确实清除了缓存-这是一个屏幕,谢谢你的回答,我想我已经解决了。是的,指定的订阅源无效,但这是错误的这不是问题。Wordpress显然是在一个不同的URL下交付创建的提要,即下面的一个—因此,为了简单起见—我忘记了URL中的/feed/