2012-02-10 7 views
6

हैलो मेरे पास एक वेबसाइट और ब्लॉग है, मैं अपनी वेबसाइट पर अपना स्वयं का होस्ट किया गया WordPress ब्लॉग प्रदर्शित करना चाहता हूं।वर्डप्रेस आरएसएस कैसे प्रदर्शित करें अपनी वेबसाइट फ़ीड?

  1. मैं अपनी वेबसाइट पर केवल 3 पोस्ट दिखाना चाहता हूं।
  2. मैं अपनी वेबसाइट को फिर से लोड करते समय हर बार किसी भी नई पोस्ट की जांच करना चाहता हूं, ताकि हाल ही में तीन केवल प्रदर्शित हो जाएं।
  3. मैं अपने वर्डप्रेस ब्लॉगपोस्ट का पूरा शीर्षक दिखाना चाहता हूं लेकिन वर्णन के विशिष्ट अक्षर।
  4. भी वर्णन एक शब्द नहीं गैर शब्दकोश शब्द के साथ समाप्त होने के कुछ टुकड़े के साथ खत्म हो जाना चाहिए "..."

यह कैसे किया जा सकता है, मैंने सुना है कि यह आरएसएस के माध्यम से किया जा सकता है। क्या कोई मेरी मदद कर सकता है?

उत्तर

5

इसे पूरा करने के लिए आपको आरएसएस से ब्लॉग के आरएसएस को पढ़ने की जरूरत है, आपको संपूर्ण विवरण और शीर्षक पढ़ने के बाद शीर्षक और विवरण पढ़ने की जरूरत है, आपको विवरण की इच्छित वांछित संख्या में विवरण को ट्रिम करने की आवश्यकता है। इसके बाद आपको मौसम की जांच करने की आवश्यकता है कि आखिरी शब्द पूरा हो गया है या नहीं और फिर पूरा नहीं होने पर आपको अंतिम शब्द को हटाने की जरूरत है और "..." डालें।

पहले हम पिछले में एक स्क्रिप्ट वर्णन ट्रिम करने के लिए और डाल करने के लिए कर देगा "...": -

<?php 
global $text, $maxchar, $end; 
function substrwords($text, $maxchar, $end='...') { 
    if (strlen($text) > $maxchar || $text == '') { 
     $words = preg_split('/\s/', $text);  
     $output = ''; 
     $i  = 0; 
     while (1) { 
      $length = strlen($output)+strlen($words[$i]); 
      if ($length > $maxchar) { 
       break; 
      } 
      else { 
       $output .= " " . $words[$i]; 
       ++$i; 
      } 
     } 
     $output .= $end; 
    } 
    else { 
     $output = $text; 
    } 
    return $output; 
} 

अब हम चर परिभाषित करेगा जिसमें हम मान संग्रहीत: -

$xml=("http://your-blog-path/rss/"); 
global $item_title, $item_link, $item_description; 

$xmlDoc = new DOMDocument(); 

$xmlDoc->load($xml); 

$x=$xmlDoc->getElementsByTagName('item'); 

अब, हम इसमें एक सरणी और स्टोर मूल्य बनाएंगे। मैं केवल 3 ले रहा हूं क्योंकि आपने इसे रास्ता पूछा है। तुम कुछ भी करने के लिए इसे बदल सकते हैं (आप दिखाना चाहते हैं पद की संख्या, डाल कि पाश में)

for ($i=0; $i<3; $i++) 

{ 

$item_title[$i] = $x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue; 

$item_link[$i] = $x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue; 

$item_description[$i] = $x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue; 

} 

?> 

अब इन सभी मूल्यों गूंज, लिंक मूल्य जहाँ आपके उपयोगकर्ता क्लिक करेंगे है और वह पर ले जाया जाएगा अपने ब्लॉग: -

पहले नवीनतम पोस्ट:

<a href="<?php echo $item_link[0]; ?>"><?php echo $item_title[0]; ?></a> 
<?php echo substrwords($item_description[0],70); ?> 

दूसरा नवीनतम पोस्ट:

<a href="<?php echo $item_link[1]; ?>"><?php echo $item_title[1]; ?></a> 
<?php echo substrwords($item_description[1],70); ?> 

तीसरा हालिया पोस्ट:

<a href="<?php echo $item_link[2]; ?>"><?php echo $item_title[2]; ?></a> 
<?php echo substrwords($item_description[2],70); ?> 

आशा है कि यह आपकी समस्या का समाधान कर सकता है। वैसे अच्छा सवाल है।

+0

इसके लिए मुझे लगता है कि आपको एक प्रश्न फिर से खोलना चाहिए ... –

+0

मैंने इस कोड का उपयोग किया है, लेकिन मुझे निम्न त्रुटि मिलती है: "PHP घातक त्रुटि: किसी सदस्य फ़ंक्शन पर कॉल करें गैर-ऑब्जेक्ट पर एलीमेंट्सबेटागनाम() प्राप्त करें। समस्या रेखा लूप में पहली पंक्ति है: $ item_title [$ i] = $ x-> आइटम ($ i) -> getElementsByTagName ('title') -> आइटम (0) -> childNodes-> आइटम (0) -> nodeValue; – fullerm

0

पदों को पुनः प्राप्त करने Wordpress REST API का उपयोग क्यों नहीं -

एपीआई यूआरएल है: https://public-api.wordpress.com/rest/v1/sites/ $ साइट/पदों/

जहां $ साइट अपने वर्डप्रेस की साइट आईडी ब्लॉग

वरना है मूल documen के लिए

http://www.codehandling.com/2013/07/wordpress-feeds-on-your-website-with.html

3

Click here - बस इस प्लगइन का उपयोग PHP के साथ आरएसएस फ़ीड प्रदर्शित करने पर टेशन।

Django बेनामी के substrwords समारोह वर्णन ट्रिम करने के लिए और अगर यह $maxchar मान पास विवरण के अंत में ... डालने के लिए इस्तेमाल किया जा रहा है।


पूर्ण कोड:

blog.php

<?php 
    global $text, $maxchar, $end; 
    function substrwords($text, $maxchar, $end='...') { 
     if (strlen($text) > $maxchar || $text == '') { 
      $words = preg_split('/\s/', $text);  
      $output = ''; 
      $i  = 0; 
      while (1) { 
       $length = strlen($output)+strlen($words[$i]); 
       if ($length > $maxchar) { 
        break; 
       } else { 
        $output .= " " . $words[$i]; 
        ++$i; 
       } 
      } 
      $output .= $end; 
     } else { 
      $output = $text; 
     } 
     return $output; 
    } 

    $rss = new DOMDocument(); 
    $rss->load('http://wordpress.org/news/feed/'); // <-- Change feed to your site 
    $feed = array(); 
    foreach ($rss->getElementsByTagName('item') as $node) { 
     $item = array ( 
      'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 
      'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue, 
      'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 
      'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue, 
     ); 
     array_push($feed, $item); 
    } 

    $limit = 3; // <-- Change the number of posts shown 
    for ($x=0; $x<$limit; $x++) { 
     $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']); 
     $link = $feed[$x]['link']; 
     $description = $feed[$x]['desc']; 
     $description = substrwords($description, 100); 
     $date = date('l F d, Y', strtotime($feed[$x]['date'])); 
     echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />'; 
     echo '<small><em>Posted on '.$date.'</em></small></p>'; 
     echo '<p>'.$description.'</p>'; 
    } 
?> 

आप आसानी से एक अलग PHP फ़ाइल (blog.php) में इस डाल सकते हैं और यह अपने वास्तविक अंदर फोन पृष्ठ।

उदाहरण:

social.php

<h3>Latest blog post:</h3> 
<?php require 'blog.php' ?> 

इसके अलावा, इस कोड के अनुकूल प्लग-एन-खेलते है।