Alimenter table wp_posts (Créer un compte)

  • Statut : non résolu
  • Ce sujet contient 16 réponses, 3 participants et a été mis à jour pour la dernière fois par Anonyme, le il y a 8 années et 11 mois.
15 sujets de 1 à 15 (sur un total de 17)
  • Auteur
    Messages
  • #537956
    tab31
    Membre
    Initié WordPress
    15 contributions

    Bonjour,
    j’utilise le plugin forum de BuddyPress qui crée des entrées (enregistrements) dans la table wp_posts.
    Je voudrais pouvoir écrire moi-même dans cette table (INSERT INTO…) pour migrer d’un ancien forum, vers WordPress.

    Quand j’ajoute une entrée forum, ça fonctionne.
    Quand j’ajoute une entrée topic (nouveau message), ça ne fonctionne pas (et je n’arrive pas à savoir pourquoi). :(
    Quand j’ajoute une entrée reply (réponse à un topic ou à un autre reply), ça fonctionne également. 🙂

    Quelqu’un pourrait-il m’aider à comprendre le fonctionnement de cette table qui « regroupe tout » SVP ? Est-ce qu’il faut ajouter une ligne dans une autre table (laquelle) ?

    Merci. 🙂

    #953824
    Lumiere de Lune
    Participant
    Maître WordPress
    20533 contributions

    on n’écrit pas directement dans la table, on utilise les fonctions wordpress qui sont faites pour ça (wp_insert_post() ) en l’occurrence

    #953825
    tab31
    Membre
    Initié WordPress
    15 contributions

    Merci.
    Serait-il possible d’utiliser cette fonction wp_insert_post() en GET (depuis l’URL) ou en POST pour automatiser l’alimentation de cette table ?

    #953826
    Anonyme
    Invité
    Maître WordPress
    34063 contributions

    Ce message a été supprimé suite à la demande de l’auteur.

    #953827
    tab31
    Membre
    Initié WordPress
    15 contributions

    Sur le forum Redmine, il me suffit d’aller chercher simplement les informations en base (SELECT), c’est bien uniquement pour les INSERT côté WordPress que ça se complique. 🙂

    #953828
    Anonyme
    Invité
    Maître WordPress
    34063 contributions

    Ce message a été supprimé suite à la demande de l’auteur.

    #953829
    Anonyme
    Invité
    Maître WordPress
    34063 contributions

    Ce message a été supprimé suite à la demande de l’auteur.

    #953830
    tab31
    Membre
    Initié WordPress
    15 contributions

    Bonjour,
    en fait, il y a bien un forum wordpress (buddypress a installé (entre autre) un forum sur mon wordpress).
    Je veux donc déplacer tout ce contenu (forums, topics reply) de mon redmine vers mon forum wordpress.

    Mon développement a avancé, et il me vient une question. En alimentant ma table wordpress wp_posts avec la fonction PHP qui va bien ( http://codex.wordpress.org/Function_Reference/wp_insert_post ), si j’ai bien compris, lorsqu’on ne met pas de valeur au champs ID, c’est qu’on crée un nouveau post, et lorsqu’on en met une, c’est qu’on modifie un enregistrement existant.

    Mais est-ce que je peux me permettre d’ajouter un nouvel enregistrement en lui fixant une valeur ? 🙂

    Merci encore noaneo.

    #953831
    Anonyme
    Invité
    Maître WordPress
    34063 contributions

    Ce message a été supprimé suite à la demande de l’auteur.

    #953832
    tab31
    Membre
    Initié WordPress
    15 contributions

    Il me faut une manière d’ajouter un nouvel enregistrement en choisissant l’ID. 🙂

    #953833
    Anonyme
    Invité
    Maître WordPress
    34063 contributions

    Ce message a été supprimé suite à la demande de l’auteur.

    #953834
    tab31
    Membre
    Initié WordPress
    15 contributions

    Bonjour.

    Buddypress ne fait qu’installer un pack de plugin dont bbpress que j’utilise ici. C’est de redmine vers bbpress que je veux migrer mon forum, mais cela n’a pas trop d’importance.

    C’est important pour moi de changer l’ID car pour la migration, j’ai développer tout un processus, et choisir l’ID me permettrait de m’en sortir.

    Merci quand même.

    #953835
    Anonyme
    Invité
    Maître WordPress
    34063 contributions

    Ce message a été supprimé suite à la demande de l’auteur.

    #953836
    tab31
    Membre
    Initié WordPress
    15 contributions

    J’essaierais bien, mais je n’arrivais pas à faire fonctionner le script PHP :

    cache_enabled = false;

    // Fix for page title
    $wp_query->is_404 = false;

    do_action( ‘activate_header’ );

    /**
    * Adds an action hook specific to this page that fires on wp_head
    *
    * @since MU
    */
    function do_activate_header() {
    /**
    * Fires before the Site Activation page is loaded, but on the wp_head action.
    *
    * @since 3.0.0
    */
    do_action( ‘activate_wp_head’ );
    }
    add_action( ‘wp_head’, ‘do_activate_header’ );

    // include_once(« C:wampwwwwp-blog-header.php »); // Permet d’accéder à la fonction

    // ——————- CONNEXION A LA TABLE TEMPORAIRE —————–

    $PARAM_hote=’localhost’; // le chemin vers le serveur
    $PARAM_port=’3306′;
    $PARAM_nom_bd=’bd_name’; // le nom de votre base de données
    $PARAM_utilisateur=’root’; // nom d’utilisateur pour se connecter
    $PARAM_mot_passe= »; // mot de passe de l’utilisateur pour se connecter
    $connexion = new PDO(‘mysql:host=’.$PARAM_hote.’;port=’.$PARAM_port.’;dbname=’.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);

    // Gestion des erreurs
    try
    {
    $connexion = new PDO(‘mysql:host=’.$PARAM_hote.’;dbname=’.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
    }

    catch(Exception $e)
    {
    echo ‘Erreur : ‘.$e->getMessage().’<br />‘;
    echo ‘N° : ‘.$e->getCode();
    }
    ?>

    query(« SELECT * FROM wp_posts ORDER BY ID DESC LIMIT 0,1 »); // on va chercher tous les champs de la table
    $resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu’on veut que le résultat soit récupérable sous forme d’objet
    while( $ligne = $resultats->fetch() ) // on récupère la liste des enregistrements de la table
    {
    // Réception des données en POST
    $post = array(
    ‘ID’ => $ligne->ID, // Are you updating an existing post?
    ‘post_author’ => $ligne->post_author, // The user ID number of the author. Default is the current user ID.
    ‘post_date’ => $ligne->post_date, // [ Y-m-d H:i:s ], // The time post was made.
    ‘post_date_gmt’ => $ligne->post_date_gmt, // [ Y-m-d H:i:s ], // The time post was made, in GMT.
    ‘post_content’ => $ligne->post_content, // The full text of the post.
    ‘post_title’ => $ligne->post_title, // The title of your post.
    ‘post_excerpt’ => $ligne->post_excerpt, // For all your post excerpt needs.
    ‘post_status’ => $ligne->post_status, // Default ‘draft’.
    ‘comment_status’ => $ligne->comment_status, // Default is the option ‘default_comment_status’, or ‘closed’.
    ‘ping_status’ => $ligne->ping_status, // Pingbacks or trackbacks allowed. Default is the option ‘default_ping_status’.
    ‘post_password’ => $ligne->post_password, // Password for post, if any. Default empty string.
    ‘post_name’ => $ligne->post_name, // The name (slug) for your post
    ‘to_ping’ => $ligne->to_ping, // Space or carriage return-separated list of URLs to ping. Default empty string.
    ‘pinged’ => $ligne->pinged, // Space or carriage return-separated list of URLs that have been pinged. Default empty string.
    ‘post_modified’ => $ligne->post_modified,
    ‘post_modified_gmt’ => $ligne->post_modified_gmt,
    ‘post_content_filtered’ => $ligne->post_content_filtered, // Skip this and let Wordpress handle it, usually.
    ‘post_parent’ => $ligne->post_parent, // Sets the parent of the new post, if any. Default 0.
    ‘guid’ => $ligne->guid, // Skip this and let Wordpress handle it, usually.
    ‘menu_order’ => $ligne->menu_order, // If new post is a page, sets the order in which it should appear in supported menus. Default 0.
    ‘post_type’ => $ligne->post_type, // Default ‘post’.
    ‘post_mime_type’ => $ligne->post_mime_type, //[ ] // Requires name of template file, eg template.php. Default empty.
    ‘comment_count’ => $ligne->comment_count, //[ ] // Requires name of template file, eg template.php. Default empty.

    // C’est champs ne sont pas en base mais je préfère les conserver pour la fonction.
    ‘post_category’ => $ligne->post_category, // [ array(, …) ] // Default empty.
    ‘tags_input’ => $ligne->tags_input, // [ ‘, , …’ | array ] // Default empty.
    ‘tax_input’ => $ligne->tax_input, // [ array( => ) ] // For custom taxonomies. Default empty.
    ‘page_template’ => $ligne->page_template, //[ ] // Requires name of template file, eg template.php. Default empty.
    );

    /*
    echo ‘—-
    ENREGISTREMENT !—-‘;
    echo ‘: ‘.$ligne->ID.’<br />‘;
    echo ‘: ‘.$ligne->post_author.’<br />‘;
    echo ‘: ‘.$ligne->post_date.’<br />‘;
    echo ‘: ‘.$ligne->post_date_gmt.’<br />‘;
    echo ‘: ‘.$ligne->post_content.’<br />‘;
    echo ‘: ‘.$ligne->post_title.’<br />‘;
    echo ‘: ‘.$ligne->post_excerpt.’<br />‘;
    echo ‘: ‘.$ligne->post_status.’<br />‘;
    echo ‘: ‘.$ligne->comment_status.’<br />‘;
    echo ‘: ‘.$ligne->ping_status.’<br />‘;
    echo ‘: ‘.$ligne->post_password.’<br />‘;
    echo ‘: ‘.$ligne->post_name.’<br />‘;
    echo ‘: ‘.$ligne->to_ping.’<br />‘;
    echo ‘: ‘.$ligne->pinged.’<br />‘;
    echo ‘: ‘.$ligne->post_modified.’<br />‘;
    echo ‘: ‘.$ligne->post_modified_gmt.’<br />‘;
    echo ‘: ‘.$ligne->post_content_filtered.’<br />‘;
    echo ‘: ‘.$ligne->post_parent.’<br />‘;
    echo ‘: ‘.$ligne->guid.’<br />‘;
    echo ‘: ‘.$ligne->menu_order.’<br />‘;
    echo ‘: ‘.$ligne->post_type.’<br />‘;
    echo ‘: ‘.$ligne->post_mime_type.’<br />‘;
    echo ‘: ‘.$ligne->comment_count.’<br />‘;
    */



    $post_id = wp_insert_post($post, $wp_error ); // Exécution de l’array
    // Remarque : Avec wp_insert_post, $wp_error n’est pas obligatoire.
    }
    $resultats->closeCursor(); // on ferme le curseur des résultats
    ?>

    #953837
    tab31
    Membre
    Initié WordPress
    15 contributions

    Mais je ne vois pas pourquoi demander à bbPress ou Buddy comment alimenter la table wp_posts (même si c’est pour alimenter des forums de leurs extensions). La table wp_posts regroupe toutes les extensions de WordPress (pas spécialement Buddypress ou autre) et est propre à wordpress.

    Je vais donc m’orienter vers le forum anglais de WordPress.

    Merci.

15 sujets de 1 à 15 (sur un total de 17)
  • Vous devez être connecté pour répondre à ce sujet.