WordPress XmlRpc – Comment Schéduler des Articles ?

Print Friendly

C’est assez amusant,  je pensais que tout le monde savait faire et je me rends compte que pas forcément alors pour l’ami DiscoDog, une explication sur le Scheduling XMLRPC de WordPress.

Qu’est ce que scheduler ?

C’est tout simplement créer 200 articles {uniques|aussi beau que possible| :D} puis d’envoyer le tout sur son WordPress adoré en lui faisant comprendre que l’article 1 doit être publié de suite, le second dans 3 heures, le 3ème dans un jour,  etc…

Avec une petite dizaine d’articles, vous gagnez rapidement quelques semaines à ne plus toucher à votre campagne de net linking, si linking il y a !

C’est comment qu’on fait hein ? dis !

Alors tout d’abord, je ne fais pas de capture d’écran hein, mais il est préférable d’avoir activé la publication distante dans WordPress ( toi qui me lis tu as compris ah ouep ? )

– Ensuite, on télécharge la charmante classe PHP  XMLRPC de chez Incutio pour avoir de quoi partir sur de bonnes bases !

– On va ensuite créer une petite class PHP pour utiliser IXR et poster à distance !

<!--?php require ('ixr.class.php'); class wp_rpc {     private $url;     private $login;     private $pass;     private $rpc;     private $erreurs = array();     public $useragent;     /**      * WordPress_client::__construct()      *       * @param mixed $url      * @param mixed $login      * @param mixed $pass      * @param string $useragent      * @return      */     public function __construct($url, $login, $pass, $useragent = '')     {         $this--->url = $url;
        $this->login = trim($login);
        $this->pass = trim($pass);
        $this->useragent = (!$useragent)?'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)':$useragent;
        $this->rpc = new IXR_Client($this->url, false, 80, $this->useragent);
    }
    public function verif_rpc()
    {
#echo '
';
        #var_dump($this->rpc->query("wp.getUsersBlogs", $this->login, $this->pass));
        #echo '
';
        return $this->rpc->query("wp.getUsersBlogs", $this->login, $this->pass);
    }
    /**
     * wp_rpc::create_category()
     *
     * @param mixed $name
     * @return
     */
    public function create_category($name)
    {
        if (!$name)
        {
            return false;
        }
			$category["name"] = $name;
           $status = $this->rpc->query("wp.newCategory","", $this->login, $this->pass,$category);
        if (!$status)
        {
            $this->erreurs[] = "Erreur( ".$this->rpc->getErrorCode().") : ".$this->rpc->getErrorMessage()."\n";
        }
        return $this->rpc->getResponse();
    }
    /**
     * WordPress_client::poster_article()
     *
     * @param mixed $titre
     * @param mixed $categorie
     * @param mixed $article
     * @return
     */
    public function poster_article_metaweblog($titre, $categorie, $article,$tags,$dateToPost)
    {
         $cat = $this->create_category($categorie);
         if ($cat != false)
         {
             $content_struct['title'] = $titre;
             $content_struct['description'] = $article;
             $content_struct['categories'] = array ($categorie);
             $content_struct['mt_keywords'] = $tags;
             if ($dateToPost)
             {
/*
|--------------------------------------------------------------------------
| Formatage de la date pour schéduler
|--------------------------------------------------------------------------
|   date('Ymd\TH:i:s',time()); // tout simplement
|   OU
|   $oneDay = 60*60*24; // en programmant des datas alétoires ( passées/futures)
|   $now = time();
|   $post_interval = (0);
|   $year = rand (2005,date('Y')); //optionnel
|   $dateToPost = date('Ymd\TH:i:s',$now+(3*$oneDay));
|
*/
                  $date = new IXR_Date($dateToPost);
                  $content_struct['dateCreated'] =  $date;
             }
              if (!$this->rpc->query("metaWeblog.newPost","", $this->login, $this->pass,$content_struct,'publish'))
            {
                $this->erreurs[] = "Votre Article $titre semble posté sur votre blog mais une erreur dans la réponse renvoyée par votre Blog est survenue :";
                $this->erreurs[] = "Erreur ( ".$this->rpc->getErrorCode()." ) : ".$this->rpc->getErrorMessage()."\n";
            }
            return ($this->rpc->getResponse())?$this->rpc->getResponse():'Erreur';
         }
         else
         {
              return false;
         }
    }
}

voilà c’est tout, il suffit ensuite de faire une boucle sur nos X articles et de formater correctement la date avant de passer tout ça dans la moulinette… A savoir que la date doit être formaté ainsi:


$dateToPost = date('Ymd\TH:i:s',time()); // par exemple pour poster de suite

ou pour poster à la date que l’on souhaite ( vous pouvez aussi bien posté dans le passé que dans le futur, en 2005 ou en 2015 :) ):


$oneDay = 60*60*24;
$now = time();
$post_interval = (3); // 3 jours entre les articles
$year = rand (2005,date('Y')); //optionnel
foreach ($articles as $id =>$article){

    # on utilise l'ID du tableau d'article comme compteur
    # le premier est posté a 3*$id = 0 jours, le second a 3*$id = 3 jours etc...
    $post_interval = ($id*$post_intervals);

    $dateToPost = date('Ymd\TH:i:s',$now+((int)$post_interval*$oneDay));

    $go = new wp_rpc('http://blogWP.com/xmlrpc.php', 'login','pass');
    $go->poster_article_metaweblog('titre', 'categorie', 'ton article','des tags',$dateToPost);
}

Voili voilou, il ne te reste plus qu’à rédiger tes articles et roule ma poule !
(7203 lectures)

Termes de recherche récents:

  • schéduler
  • monique inurl:/book php
  • oq inurl:/register intext:upcoming intext:published intext:submit -inurl: php
  • inurl:/club/memberlist php?mode=
  • 38 inurl:/engine/rss php 8
  • iesm memberlist php?mode=viewprofile
  • modernized powered by pligg home login register

Commentaires

Téléchargez de suite votre "cadeau de la semaine" (scripts, guides, plugin Wordpress) >>

Laisse ton com