Je dois insérer des messages par programme dans Wordpress. Je veux pouvoir publier des articles via une URL. Quelque chose comme www.mypage.com/insertnewpost.php?title=blah&content=blahblahblah&category=1,2,3
Le code suivant ne fonctionne que si je l'utilise dans le fichier functions.php des thèmes.
include '../../../wp-includes/post.php';
global $user_ID;
$new_post = array(
'post_title' => 'My New Post',
'post_content' => 'Lorem ipsum dolor sit amet...',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(0)
);
$post_id = wp_insert_post($new_post);
Cependant, lorsque j'essaie de créer une nouvelle page telle que insertnewposts.php et d'utiliser le code ci-dessus, des erreurs telles que Erreur fatale se produisent: Appel à la fonction non définie add_action () dans Z:\www\wordpress\wp-includes\post.php en ligne 144
S'il vous plaît aider.
J'ai enfin eu la réponse au problème.
Pour que this code fonctionne:
global $user_ID;
$new_post = array(
'post_title' => 'My New Post',
'post_content' => 'Lorem ipsum dolor sit amet...',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(0)
);
$post_id = wp_insert_post($new_post);
nous devons nous assurer que le bootstrap de wordpress a été démarré ... Bootstrap de Wordpress garantit que toute la configuration de wordpress a été chargée dans la mémoire. Cela inclut toutes les fonctions principales, etc.
Pour revenir au problème initial de "l'insertion de publications par programme", nous devons appeler wp_insert_post () à l'endroit approprié après pour démarrer le bootstrap wp.
Pour cela, créez un nouveau fichier php tel que www.votredomaine.com/wpinstalldir/autoposts.php
<?php
/**
* Writes new posts into wordpress programatically
*
* @package WordPress
*/
/** Make sure that the WordPress bootstrap has run before continuing. */
require(dirname(__FILE__) . '/wp-load.php');
global $user_ID;
$new_post = array(
'post_title' => 'My New Post',
'post_content' => 'Lorem ipsum dolor sit amet...',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(0)
);
$post_id = wp_insert_post($new_post);
?>
Maintenant, lorsque vous exécuterez ce script à l'adresse www.votdomain.com/wpinstalldir/autoposts.php, votre message sera créé. Facile et simple!
Le simple fait d’ajouter la ligne require(dirname(__FILE__) . '/wp-load.php');
a fait toute la différence.
Le simple fait d’ajouter la ligne require(dirname(__FILE__) . '/wp-load.php');
a fait toute la différence.
Alors, quand vous voulez écrire un post de programmation sur WordPress, faites comme ceci:
error_reporting(E_ALL);
ini_set("display_errors", 1);
set_time_limit(0);
require(dirname(__FILE__) . '/wp-load.php');
// Create post object
$my_post = array(
'post_title' => wp_strip_all_tags( 'test' ),
'post_content' => 'hi boy',
'post_status' => 'publish',
'post_author' => 1
);
$post_id = wp_insert_post( $my_post, $wp_error );
if ($wp_error==false)
echo $post_id ;
else
echo 'Not set';
echo 'Ended';
J'espère que la réponse sur ce lien est utile.
Assurez-vous que les fonctions communes sont accessibles dans votre Z:\www\wordpress\wp-includes\post.php