Come utilizzare il caricamento dei media nella pagina delle opzioni del tema?

31 gen 2011, 07:09:37
Visualizzazioni: 29K
Voti: 6

Voglio implementare il caricamento del logo nella mia pagina delle opzioni del tema. Attualmente sto seguendo questo codice

Per ora ho caricato il jquery necessario per l'upload dei media

function load_only() {
    add_thickbox();
    wp_enqueue_script('jquery-option', get_template_directory_uri() . '/admin/js/jquery.option.js', array('jquery','media-upload','thickbox','jquery-ui-core','jquery-ui-tabs'), '1.0');
}

Domanda

Come implementare il form di upload utilizzando il caricamento media esistente?

<input id="theme_options_upload" type="text" name="theme_options_upload" value="<?php esc_attr_e( $options['theme_options_upload'] ); ?>" />
<input type="button" name="just_button" value="<?php esc_attr_e('Carica'); ?>" />

Voglio sapere

  1. Come collegare il pulsante a media-upload.php
  2. Dopo aver caricato l'immagine e cliccato sul pulsante Inserisci nel Post nella finestra di media-upload, l'immagine deve essere inserita nel campo name="theme_options_upload"

Fatemi sapere.

0
Tutte le risposte alla domanda 1
8

È molto probabile che tu salvi l'URL dell'immagine e non l'intero tag dell'immagine, e c'è un ottimo tutorial che spiega proprio come utilizzare il media uploader nel tuo tema o plugin: http://www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/

aggiornamento

Nel caso di utilizzo in un meta box avrai bisogno dell'ID del post, quindi modifica il codice js da:

jQuery('#upload_image_button').click(function() {
 formfield = jQuery('#upload_image').attr('name');
 tb_show('', 'media-upload.php?type=image&amp;TB_iframe=true');
 return false;
});

a

jQuery('#upload_image_button').click(function() {
 formfield = jQuery('#upload_image').attr('name');
 post_id = jQuery('#post_ID').val();
 tb_show('', 'media-upload.php?post_id='+post_id+'&amp;type=image&amp;TB_iframe=true');
 return false;
});
31 gen 2011 08:35:47
Commenti

Bravo! Grazie web design. Hai qualche idea su come aggiungere post_id=$post->ID?

haha haha
31 gen 2011 09:00:10

usa global $post; e poi $post->ID

Bainternet Bainternet
31 gen 2011 09:15:39

media-upload.php?post_id=ID&amptype=image&amp;TB_iframe=true in wp 3.1 richiede post_id=ID altrimenti otterremo Notice: Undefined index: post_id. Se inseriamo un ID qualsiasi il pulsante "Inserisci nel post" non viene mostrato. Come possiamo risolvere?

haha haha
31 gen 2011 18:51:58

incolla il tuo codice

Bainternet Bainternet
31 gen 2011 19:07:51

hmmm.. esattamente come il blog che hai postato. se leggi i commenti sul blog troverai lo stesso problema che ho io. molti di loro chiederanno come farlo funzionare con post_id

haha haha
31 gen 2011 19:21:06

ho aggiornato la risposta

Bainternet Bainternet
31 gen 2011 19:37:40

C'è una cosa strana in questo codice, e ho visto diverse varianti dello stesso esempio pubblicate più volte, è che questa riga.. formfield = jQuery('#upload_image').attr('name'); rimane totalmente inutile, la variabile è definita ma mai utilizzata (quindi puoi effettivamente rimuovere quella riga senza conseguenze).

t31os t31os
1 feb 2011 13:50:50

In questo caso hai ragione ma l'ho usato in casi diversi dove utilizzo più campi per sovrascrivere l'invio all'editor

Bainternet Bainternet
1 feb 2011 14:14:59
Mostra i restanti 3 commenti