Cum să folosești media upload pe pagina de opțiuni a temei?

31 ian. 2011, 07:09:37
Vizualizări: 29K
Voturi: 6

Vreau să implementez încărcarea logo-ului în pagina de opțiuni a temei mele. Momentan urmez acest cod

Până acum am încărcat jQuery-ul necesar pentru media upload

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');
}

Întrebare

Cum să implementez formularul de upload folosind media upload-ul existent?

<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('Încarcă'); ?>" />

Vreau să știu

  1. Cum să conectez butonul la media-upload.php
  2. După ce încărcăm imaginea și apăsăm butonul Insert into Post din media-upload, imaginea să fie plasată în câmpul name="theme_options_upload"

Aștept răspunsul.

0
Toate răspunsurile la întrebare 1
8

Cel mai probabil vei salva URL-ul imaginii și nu întregul tag de imagine, și există un tutorial excelent care explică cum să folosești media uploader în propriul tău temă sau plugin: http://www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/

actualizare

În cazul în care folosești acest lucru într-o meta box, vei avea nevoie de ID-ul postării, așa că schimbă codul JS de la:

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;
});

la

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 ian. 2011 08:35:47
Comentarii

Bravo! Mulțumesc pentru designul web. Există vreo indicație despre cum să adaug post_id=$post->ID?

haha haha
31 ian. 2011 09:00:10

folosește global $post; și apoi $post->ID

Bainternet Bainternet
31 ian. 2011 09:15:39

media-upload.php?post_id=ID&amptype=image&amp;TB_iframe=true în WordPress 3.1 necesită post_id=ID altfel vom primi Notice: Undefined index: post_id. Dacă punem orice ID, butonul "Insert into Post" nu va apărea. Cum putem rezolva această problemă?

haha haha
31 ian. 2011 18:51:58

lipiți-vă codul

Bainternet Bainternet
31 ian. 2011 19:07:51

hmmm.. exact la fel ca în blogul pe care l-ai postat. dacă citești comentariile de pe blog, vei găsi aceeași problemă ca și mine. majoritatea vor întreba cum să o facă să funcționeze cu post_id

haha haha
31 ian. 2011 19:21:06

am actualizat răspunsul

Bainternet Bainternet
31 ian. 2011 19:37:40

Există un lucru ciudat în legătură cu acest cod și am văzut variații ale aceluiași exemplu postate de numeroase ori, și anume că această linie.. formfield = jQuery('#upload_image').attr('name'); rămâne complet inutilă, variabila este definită dar niciodată folosită (deci poți elimina acea linie fără niciun efect negativ).

t31os t31os
1 feb. 2011 13:50:50

În acest caz ai dreptate, dar am folosit-o în alte situații în care utilizez mai multe câmpuri pentru a suprascrie trimiterea către editor

Bainternet Bainternet
1 feb. 2011 14:14:59
Arată celelalte 3 comentarii