2016-04-01 14 views
0

私は2つのウェブサイトを持っています。私はACFを使用して、カスタムの投稿タイプ "jobs"にカスタムフィールドを追加しています。私はメインサイトのkey "job_type"でカスタムフィールドを設定しました。私は今、私は<job_link>と値へのアクセスを持っている私が見ることができるようにhttp://my-domain.com/jobs/feed/などのフィードにアクセスするとWPシンプルパイ2つのサイト間のカスタムフィールド

/** Add ACF fields to RSS **/ 
add_action('rss2_item', 'cup_rss2_job'); 
function cup_rss2_job() { 
    $post_id = get_the_ID(); 
    $job_link_url = get_field('job_link', $post_id); 

    if($job_link_url){ 
     echo "<job_link>{$job_link_url}</job_link>\n"; 
    } 
} 

:それから私は、関数ファイルにこれを追加しました。しかし、私は(同じサーバー)上ではSimplePieを使用していますサイト上で、私は次のエラーを取得する:

WP_Error Object 
(
    [errors] => Array 
     (
      [simplepie-error] => Array 
       (
        [0] => This XML document is invalid, likely due to invalid characters. XML error: not well-formed (invalid token) at line 59, column 106 
       ) 

     ) 

    [error_data] => Array 
     (
     ) 

) 

私はフィードを取得するために使用しています機能を正しく設定する必要があります私は同様の機能を使用しているため、私は知っています別のカスタムフィールドで同じサイトの別のフィードを取得します。私はjob_linkのいずれかのURLは、XMLが、これは&#038;をHTMLに変換に必要な「&」を持っていたし、それが原因となったものであることがわかった。これは私がXMLバリデータを通して私のフィードを実行した後fetch_feed

function cup_jobs_feed($limit, $offset) { 

    $feed = fetch_feed('http://my-domain.com/jobs/feed/'); 

    if (! is_wp_error($feed)): 

     // Get a maximum of 1 item 
     $maxitems = $feed->get_item_quantity($limit); 
     $items = $feed->get_items($offset, $maxitems); 

     foreach ($items as $item): 

      $feedDescription = $item->get_content(); 
      $image = returnImage($feedDescription); 
      $image = scrapeImage($image); 
      $image_url= $item->get_permalink(); 
      $description = $item->get_description(); 
      $description = preg_replace("/<img[^>]+\>/i", "", $description); //strip img out of description 
      $job_link = $item->get_item_tags('','job_link')[0]['data']; 
      ?> 
      <div class="row job-listing"> 
       <div class="col-md-4"> 
        <div class="image-box"><?php echo '<a href="' . $image_url . '"><img class="aligncenter" src="' . $image . '" /></a>'."\n";?></div> 
       </div> 
       <div class="col-md-8 job-details"> 
        <h4><a href="<?php echo $item->get_permalink(); ?>" target="_blank"><?php echo $item->get_title(); ?></a></h4> 
        <p><?php echo strip_tags($description); ?></p> 
        <p><?php 
         if($job_link){ ?> 
          <a href="<?php echo $job_link; ?>" target="_blank" title="Click Here to Register">Learn More</a> 
         <?php 
         } else { ?> 
          <a href="<?php echo $item->get_permalink(); ?>" target="_blank">Learn More</a> 
         <?php } ?> 
        </p> 
       </div> 
       <hr> 
      </div> 

      <?php 
     endforeach; 
    else: // Returned WP_Error, unable to fetch the feed. 
    ?> 
     <p>There was an error fetching the CUP Jobs, please try again later</p> 
    <?php 
    endif; 
    ?> 
<?php 
} 

答えて

0

に使用しています私の関数であります無効な文字のエラーメッセージをスローするフィード。

したがって、私はこれをサイト#1のカスタムフィールドに入れた場合、これは失敗します。適切な方法はこれです:

http://google.com/view=mobile&#038;location=1 
関連する問題