Script pour insérer des article automatiques sur WordPress

Insérer des articles automatiques sur votre blog WordPress

Suite à mon précédent billet sur comment insérer des billets automatiques avec WordPress, je n’avais pas publié le script php que j’utilisais à titre personnel pour l’autre blog dont je m’occupe “Les perles du net.fr”.
Via une tache automatisée (on appelle ça une tache cron), tous les jours ce le script ci-dessous est appelé automatiquement et va préparer un article qui sera publié plus tard dans la journée.

Voici donc le code qui se passe de commentaires, puisque j’ai essayé de le commenter au mieux. Si vous avez suivi le tuto pour insérer des articles de façon automatique dans wordpress, vous comprendrez donc ce que fait chaque insertion en base de donnée!

$dir 	= 'wp-content/uploads/';
list($annee, $mois) = explode('-', date('Y-m');

// Si le dossier correspondant à l'année en cours existe déjà
if(is_dir($dir.$annee))
{
	if(!is_dir($dir.$annee.'/'.$mois)) // Si le sous dossier "mois" du dossier "année" n'existe pas, on le crée
	{
		mkdir($dir.$annee.'/'.$mois);
	}
}
// Si rien n'existe on crée le dossier et le sous dossier
else
{
	mkdir($dir.$annee);
	mkdir($dir.$annee.'/'.$mois);
}

// Le chemin complet du dossier d'upload
$repertoire = $dir.$annee.'/'.$mois.'/';

[Ici, j'ai un script (non visible dans ce code) qui ouvre un socket pour aller chercher sur un autre serveur la photo qui m'interesse et je la télécharge sur mon serveur]

//  Le chemin de l'image publiée 
$filename = $repertoire.'les-perles-du-net-le-chat-de-geluck-'.date('Ymd').'.jpg';

// Connexion BDD
$db_name = 'blablabla';
$db_user = 'utilisateur';
$db_password = 'motdepasse';
$db_host = 'localhost';

$link = mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_name, $link);

// Je me sers d'un compteur pour incrémenter le nombre d'articles automatiques parrus.
$monfichier = fopen('compteur_lechat.txt', 'r+');
$cpt 		= intval(fgets($monfichier)) + 1; // On récupère la précédente valeur, qu'on incrémente
fseek($monfichier, 0); // On remet le curseur au début du fichier
fputs($monfichier, $cpt); // La nouvelle valeur du compteur est sauvegardée
fclose($monfichier);

// Tous les jours post à 10h!
list($d, $m, $y, $h, $i, $s) = explode('-', date('d-m-Y-H-i-s'));

$date = $y.'-'.$m.'-'.$d.' 10:00:00';

$post_date = $y.'-'.$m.'-'.$d.' 10:00:00';
$post_date_gmt = $y.'-'.$m.'-'.$d.' 08:00:00';

$date_update = $y.'-'.$m.'-'.$d.' '.$h.':'.$i.':'.$s;
$date_update_gmt = $y.'-'.$m.'-'.$d.' '.($h-2).':'.$i.':'.$s;

// Titre version originale
$titre = 'Le chat du jour #'.$cpt;

// Titre version slug (compatible URL)
$titre_slug = 'le-chat-du-jour-'.$cpt;

// Contenu
$today = $d.'/'.$m.'/'.$y;
$contenu = '

Retrouvez chaque jour à 10h une nouvelle image du célèbre chat de Philippe Geluck.

Découvrez le chat du '.$today.'

Le chat de Philippe Geluck du '.$today.'

Retrouvez la liste des chats déjà parus

';

$q = '	INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`)
		VALUES ("",
			        "1",
				"'.$post_date.'",
				"'.$post_date_gmt.'",
				"'.addslashes($contenu).'",
				"'.$titre.'",
				"",
				"publish",
				"open",
				"open",
				"",
				"'.$titre_slug.'",
				"",
				"",
				"'.$date_update.'",
				"'.$date_update_gmt.'",
				"",
				"0",
				"",
				"0",
				"post",
				"",
				"0");';

if(mysql_query($q)or die(mysql_error()))
{
	// On met à jour le permalien de l'article avec l'id de ce dernier
	$id = mysql_insert_id();
	mysql_query('UPDATE `wp_posts` SET `guid` = "http://www.les-perles-du-net.fr/?p='.$id.'" WHERE `ID` = "'.$id.'"');

	// Catégories. Mes articles autos vont toujours dans les mêmes trois catégories.
	mysql_query('INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_order`) VALUES("'.$id.'", "8", "0"), ("'.$id.'", "9", "0"), ("'.$id.'", "10", "0")');

	// Tags. Mes articles autos ont toujours les mêmes tags.
	mysql_query('INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_order`) VALUES("'.$id.'", "384", "0"), ("'.$id.'", "1703", "0"), ("'.$id.'", "1704", "0"), ("'.$id.'", "1705", "0")');
}

Leave a Reply

Your email address will not be published. Required fields are marked *