2016-04-01 5 views
0

Ich habe 2 Websites. Eine von ihnen verwende ich ACF, um benutzerdefinierte Felder zu einem benutzerdefinierten Beitragstyp "Jobs" hinzuzufügen, ich habe das benutzerdefinierte Feld mit dem Schlüssel "job_type" auf der Hauptwebsite eingerichtet. Dann habe ich diese in die Datei Funktionen:WP Simple Pie benutzerdefinierte Felder zwischen 2 Standorten

/** 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"; 
    } 
} 

Wenn ich den Feed besuchen wie http://my-domain.com/jobs/feed/ ich sehen kann, wo ich jetzt bin Zugriff auf die Werte mit <job_link> haben. Doch auf der Seite, die ich SimplePie auf (denselben Server) verwende ich die folgende Fehlermeldung:

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 
     (
     ) 

) 

Die Funktion ich die FEED um bin mit Setup richtig sein soll, weiß ich, weil ich eine ähnliche Funktion für einen anderen Feed auf den gleichen Websites mit einem separaten benutzerdefinierten Feld abrufen. Das ist meine Funktion verwende ich zu 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 
} 

Antwort

0

Nach meinem Feed über eine XML-Validator läuft ich festgestellt, dass eine der job_link Urls hatte ‚&‘, welche XML benötigt diese &#038; in HTML umgewandelt und das ist, was verursacht wurde der Feed, um die Fehlermeldung von ungültigen Zeichen zu werfen.

also kurz gesagt, wenn ich dies in meinem benutzerdefinierten Feld vor Ort # 1 http://google.com/view=mobile&location=1 dies würde scheitern. Der richtige Weg sollte dies sein:

http://google.com/view=mobile&#038;location=1 
Verwandte Themen