Hvordan hente blogginnlegg (Wordpress) Fra Ekstern Script

stemmer
1

Hvordan går jeg om å hente alle blogginnlegg fra min Wordpress blog via en ekstern PHP script? Er dette også mulig? Jeg har sett API for å lage en Wordpress plugin, men jeg er ikke sikker på om det er relevant i denne saken. Eventuelle forslag blir verdsatt. Takk skal du ha.

Publisert på 30/12/2009 klokken 01:08
kilden bruker
På andre språk...                            


4 svar

stemmer
0

Wordpress har et fôr som innleggene dine blir publisert som standard. Du kan lese XML-feed, og analysere ut de relevante data.

Jeg har en forfengelighet område som jeg bruker til å sende kunder til, og jeg bidrar også tidvis til en blogg. En av de tingene som min forfengelighet området viser er en kort liste over linker til de 5 nyeste innleggene fra bloggen. Her er koden jeg bruker å gjøre det:

<ul>
<?php
    //slurp latest post from Wordpress' RSS feed, and cache them for short time.
    $posts = '';
    $cachefile = 'my-blog-cache-file.html';
    if (is_readable($cachefile) && filemtime($cachefile) > (time() - 1800)) {
        readfile($cachefile);
    }
    else {
        $doc = new DOMDocument();
        $doc->load('http://my.wordpress.blog/feed');
        $items = $doc->getElementsByTagName('item');
        foreach($items as $i)
        {
            if ($i->hasChildNodes()) {
                $title = $link = '';
                foreach($i->childNodes as $cn) {
                    if ($cn->nodeName == 'title') $title = $cn->nodeValue;
                    if ($cn->nodeName == 'link') $link = $cn->nodeValue;
                    if ($cn->nodeName == 'dc:creator') $author = $cn->nodeValue;
                }
                if ($title != '' && $link != '' && $author == 'my name') {
                    $posts .= '<li><a href="'.$link.'">'.$title.'</a></li>'."\n";
                }
            }
        }
        file_put_contents($cachefile,$posts);
        echo $posts;
    }
?>
</ul>

Føl deg fri til å bruke denne koden. Du kan undersøke feed av din egen blogg og bestemme hvilke elementer du ønsker å analysere ut. Vanligvis strømmen vil bli plassert på bloggen din URL, med /feedtacked på slutten.

Svarte 30/12/2009 kl. 01:51
kilden bruker

stemmer
1

Den eksterne skript kan laste wordpress api med

include('blog/wp-load.php'); // change blog/ to your actual path

Deretter kan du bruke get_posts eller query_posts å få innleggene du ønsker.

Svarte 30/12/2009 kl. 07:38
kilden bruker

stemmer
0

Det andre alternativet er selvfølgelig å bruke PHP til å koble til databasen og lese databasen selv :)

//You'll want to set your database credentials 
mysql_connect($server, $username, $password);
mysql_select_db($wp_db);

// Modify the fields to pull whatever data you need for the output, even perhaps join the wp_users table for user data // Setting the ORDER BY to DESC to mimic the Wordpress ordering with newest first $sql = "SELECT ID, post_author, post_date, post_content, post_title, post_status, post_name, guid FROM wp_posts ORDER BY post_date DESC"; $data = mysql_query($sql);

$num = count($data); for($i = 0; $i < $num; $i++){ $row = mysql_fetch_array($data); // Output your posts to something print_r($row); }

Dette bør tillate deg å spille med dataene langt lettere :)

Svarte 30/12/2009 kl. 08:58
kilden bruker

stemmer
0

Det er lurt å ta en titt på Magpie . Det er en ganske rett fram RSS-klient for PHP, som lar deg abonnere på noen feed og få innleggene med bare noen få linjer med kode.

Svarte 30/12/2009 kl. 09:48
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more