- Statut : non résolu
- Ce sujet contient 7 réponses, 2 participants et a été mis à jour pour la dernière fois par Timama, le il y a 9 années et 6 mois.
-
AuteurMessages
-
17 mars 2015 à 10 h 52 min #507387
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.1.1
– Version de PHP/MySQL :
– Thème utilisé : le mien
– Extensions en place :
– Nom de l’hebergeur : STRATO
– Adresse du site :Problème(s) rencontré(s) :
Bonjour,Je voudrais uploader une image grâce à une metabox.
La metabox s’affiche dnas ma page wordpress, mais il y a un problème de sauvegarde de données.Mon code dans functions.php:
if (is_admin()) {
wp_enqueue_script(‘customadminjsentmembres’, get_template_directory_uri() . ‘/js/admin-entmembres.js’);
}
add_meta_box(‘id_entmembres’, ‘Image entreprises membres’, ‘meta_function_entmembres’, ‘page’, ‘normal’, ‘core’);
function meta_function_entmembres( $post ) {
wp_enqueue_media();
$logo_entmembres = get_post_meta( $post->ID, ‘logo_ent’, true );
?>
</br></br>
<label for="logo_entmembres">Image avec logos entreprises membres: </label>
<input id="logo_entmembres" style="width: 450px;" type="text" name="logo_entmembres" value="<?php echo $logo_entmembres;?> » />
<a href="#" class="button customaddmediaentmembres"> Télécharger l’image</a></br>
<i><?php echo 'Formats jpg, png, gif avec un nom de fichier sans accents'; ?></i>
</br></br>
<?php
add_action('save_post','save_metaboxes');
function save_metaboxes($post_ID){
if(isset($_POST['logo_entmembres'])){
// Sanitize user input.
$meta_data_entmembres = sanitize_text_field($_POST['logo_entmembres']);
update_post_meta($post->ID, ‘logo_ent’, $meta_data_entmembres );
}
}
?>
}Quand j’uploade l’image, le lien apparaît mais quand je met à jour la page wp, il disparaît.
J’ai regardé dans la base de donnée, et rien ne se sauve dans logo_ent.Est ce que vous avez une remarque à faire sur mon code?
je n’arrive pas à savoir où est le pb de sauvegarde….merci beaucoup pour votre aide !
Timama
17 mars 2015 à 12 h 32 min #823715Regarde bien ce que tu dois donner à wp_enqueue_media(); et ce qu’il va te retourner
Il y a surement des paramètres important dedansDidier
17 mars 2015 à 13 h 50 min #823716Merci Didier.
alors, j’avoue n’avoir pas trouvé beaucoup d’info sur comment utiliser wp_enqueue_media() avec des arguments.
Mais, j’utilise d’autres wp_enqueue_media() et je ne mets pas de paramètres.J’ai essayé aussi de placer le wp_enqueue_script autrement ….
Je cherche …:search:
17 mars 2015 à 14 h 16 min #823717http://www.justinwhall.com/multiple-upload-inputs-in-a-wordpress-theme-options-page/ :rolleyes:
une autre pour la route et en francais : http://www.restezconnectes.fr/ajouter-la-fonctionnalite-dupload-dimage-dans-vos-plugins-wordpress/
17 mars 2015 à 16 h 01 min #823718Merci Didier 😉
Ce n’est pas un problème de multiple upload (quand j’enlève le reste, ça fonctionne toujours pas ).
Ce ne se sauve pas. J’uploade, le lien s’affiche et quand je mets à jour, ça disparait….humm je comprends toujours pas… je continue…
:search:
17 mars 2015 à 16 h 08 min #823719//When a file is selected, grab the URL and set it as the text field’s value
custom_uploader.on(‘select’, function() {
attachment = custom_uploader.state().get(‘selection’).first().toJSON();
jQuery(‘#upload_image’).val(attachment.url);
});A la fin du 2ème lien. Il faut que tu récuère l’url de ton image pour la sauvegarder.
jQuery(« #logo_entmembre »).val(attachment.url) devrait faire ton affaire17 mars 2015 à 16 h 19 min #823720je le fais déjà, enfin, pas tout à fait pareil …. dans mon js admin-entmembres.js
(function($){
$(document).ready(function(){
$(‘.customaddmediaentmembres’).click(function(e) {
var $el = $(this).parent();
e.preventDefault();
var uploader = wp.media ({
title : ‘Charger l’image’,
button : {
text : ‘bibliothèque des medias’
}
})
.on(‘select’,function(){
var selection = uploader.state().get(‘selection’);
var attachment = selection.first().toJSON();
$(‘input#logo_entmembres’,$el).val(attachment.url);
$(‘img’,$el).attr(‘src’, attachment.url);
})
.open();
})
})
})(jQuery);c’est peut être là que ça pose problème …. hummm je regarde
merci Didier !
:search:
27 mars 2015 à 7 h 43 min #823721okay, j’ai trouvé. Dans le code suivant, il y avait $post-> que j’ai changé par $post_ID et ça fonctionne !
if(isset($_POST[‘logoentmembres’])){
$meta_data_entmembres = $_POST[‘logoentmembres’];
update_post_meta($post_ID, ‘logoent’, $meta_data_entmembres );
}✅
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.