Annonce

Faites la différence entre le service WordPress.com et l'application libre WordPress.

Mettez-vous à jour ! WordPress 3.3.2 est disponible en français.

Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite recherche et de lire les règles de ce forum.
Annonce 3 : Lisez notre blog, il regorge de bonnes informations.
Annonce 4 : Rejoignez-nous sur Facebook, Google + et sur Twitter

#1 10-07-2009 16:45:43

julien04
Membre WP
Date d'inscription: 10-07-2009
Messages: 1

Galère avec mes débuts en plugin : $wpdb->query ne s'éxécute pas tjr

Bonjour,

Ma configuration WP actuelle
- Version de WordPress : 2.8
- Thème utilisé :
- Plugins en place :
- Nom de l'hebergeur : OVH / 90plan
- Adresse du site :

Problème(s) rencontré(s) :

Je code mon premier plugin.
Mon but : dans la gestion des médias, à l'uplaod d'un nouveau fichier, je veux pouvoir choisir le document parent (parceque j'affiche ensuite les attachements sur les pages concernées).
Je veux aussi pouvoir modifier cette affectation.
Je n'avais trouvé aucun plugin pour faire ça, donc je commence à coder, et c'est assez simple finalement ;-)

Ma technique :
j'utilise le hook attachment_fields_to_edit pour ajouter mon formulaire "select" qui propose les pages qu'on peut lier en doucement parent.
j'utilise le hook attachment_fields_to_save pour enregistrer ma liaison avec le document parent.

Tout ça fonctionne, mon formulaire s'affiche, et ma requête de liaison est bonne. Voici la requête :
$wpdb->query("UPDATE ".$wpdb->posts." SET post_parent = ".$nouveau_parent." WHERE ID = ".$attachment_id." LIMIT 1");

MAIS, voici mon bug :

Dans le formulaire de modification d'un media (à l'upload ou en édition par la suite, c'est le même), si je ne fais QUE changer mon parent (avec mon plugin), ça fonctionne !

Mais, si je change autre chose (titre, légende ou description), ma requête ne passe pas !! Pourtant le code tourne, j'arrive à faire des print pour le vérifier.

Vous avez une idée ? J'ai testé :

- de changer le poid de mon add_filter
- d'utiliser autre chose que $wpdb->query (comme $wpdb->get_results)

Mais toujours le même problème, ça ne s'exécute QUE si je change que ça.

Je vous épargne le hook qui rajoute le formulaire (il fonctionne tout le temps), voici celui qui est censé faire l'UPDATE :

function wp_ae_attachment_fields_to_save($form_fields, $post){
    global $wpdb;
    $attachment_id = $form_fields['ID'];
    $nouveau_parent= $post['ape-parent'];
    $wpdb->query("UPDATE ".$wpdb->posts." SET post_parent = ".$nouveau_parent." WHERE ID = ".$attachment_id." LIMIT 1");
    return $form_fields;
}

add_filter('attachment_fields_to_save',    'wp_ae_attachment_fields_to_save', 1, 2);

Merci d'avance,

Julien

Hors ligne

 

Pied de page des forums

Propulsé par PunBB 1.2.23
© Copyright 2005-2006 WordPress France

[ Generated in 0.019 seconds, 8 queries executed ]