Salut à tous !
J'utilise wordpress depuis peu et je cherche à ajouter un champs personnalisé que j'ai appelé ptype, maintenant ce que j'ai essayé de faire c'est d'ajouter un champ personnalisé à mon formulaire de cette catégorie. Seulement voilà le problème, c'est que j'essaye d'ajouter un input de type file (pour pouvoir associer une image à ma catégorie), le champ apparaît bien sur le formulaire toutefois quand j'essaye d'utiliser la fonction pour sauvegarder le contenu de mon champ, le print_r des variables $_POST et $_FILES ne contient pas mon champ de type input file, or avec un autre type d'input ça fonctionne. Pourtant, j'ai bien ajouté en js, le enctype pour le champ file. Voici mon code si vous avez une idée d'où ça peut venir...
<?php
add_action('ptype_add_form_fields','category_edit_form_fields');
add_action('ptype_edit_form_fields','category_edit_form_fields');
add_action('ptype_add_form','category_edit_form');
add_action('ptype_edit_form','category_edit_form');
function category_edit_form_fields() {
wp_enqueue_style('wp-extends-css', plugins_url() . '/wpmarketplace/css/extends_page.css');
?>
<div class="form-field">
<label for="visual"><?php _e('Image de la catégorie', ''); ?></label>
<input type="file" id="visual" name="visual" />
</div>
<?php
}
function category_edit_form() {
?>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#addtag').attr("enctype", "multipart/form-data" ).attr("encoding", "multipart/form-data");
});
</script>
<?php
}
add_action('created_ptype','wpse_created_term',10,3);
function wpse_created_term($term_id, $tt_id) {
echo "<pre>";
print_r($_FILES);
echo "</pre>";
echo "<pre>";
print_r($_POST);
echo "</pre>";
die();
}
// On ajoute la colonne visuel au tableau des catégories
add_filter('manage_edit-ptype_columns', 'ptype_columns');
function ptype_columns($columns) {
unset($columns'description']);
$columns'visual'] = "Visuel";
return $columns;
}
// On récupère l'image ajouter à la table wp_terms()
add_filter('manage_ptype_custom_column', 'add_post_tag_column_content',10,3);
function add_post_tag_column_content($i,$column_name,$id){
wp_enqueue_style('wp-extends-css', plugins_url() . '/wpmarketplace/css/extends_page.css');
switch($column_name) {
case 'visual':
$term = get_term($id,'ptype');
$image = WP_CONTENT_URL."/uploads/wpmp_terms/".$term->visual;
$str = (strlen($term->visual) > 1) ? "<img src='{$image}' class='term_image' />" : "<p>Nada</p>";
$content .= $str;
break;
}
return $content;
}
...
?>
Et le résultat du print_r :
Array
(
)
Array
(
[action] => add-tag
[screen] => edit-ptype
[taxonomy] => ptype
[post_type] => wpmarketplace
[_wpnonce_add-tag] => 1bfcd0a2e1
[_wp_http_referer] => /gc/wp-admin/edit-tags.php?taxonomy=ptype&post_type=wpmarketplace
[tag-name] => rzer
[slug] => eferg
[parent] => -1
[description] => efgr
)
Voila si vous avez une idée :/.
Cordialement,
ludo61
Oui, je le fais avec cette fonction :
function category_edit_form() {
?>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#addtag').attr("enctype", "multipart/form-data" ).attr("encoding", "multipart/form-data");
});
</script>
<?php
}
Et quand j'utilise l'inspecteur je vois effectivement le enctype...