X

Cum să creezi butoane media pentru adăugarea automată de shortcode-uri

Fragmente de IsItWP

Căutați o modalitate de a crea butoane media pentru adăugarea automată de shortcode-uri? Acest fragment va adăuga un meniu de selecție cu o listă generată automat de shortcode-urile dvs.

Instrucțiuni:

Adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului

Opțional, editați linia 10 a array-ului pentru a exclude anumite shortcode-uri.

add_action('media_buttons','add_sc_select',11);
function add_sc_select(){

    global $shortcode_tags;

     /* ------------------------------------- */
     /* enter names of shortcode to exclude bellow */
     /* ------------------------------------- */

    $exclude = array("wp_caption", "embed");

    echo '&nbsp;<select id="sc_select"><option>Shortcode</option>';

    foreach ($shortcode_tags as $key => $val){
	    if(!in_array($key,$exclude)){
            $shortcodes_list .= '<option value="['.$key.'][/'.$key.']">'.$key.'</option>';
    	    }
        }

     echo $shortcodes_list;
     echo '</select>';
}
add_action('admin_head', 'button_js');
function button_js() {
	echo '<script type="text/javascript">
	jQuery(document).ready(function(){
	   jQuery("#sc_select").change(function() {
			  send_to_editor(jQuery("#sc_select :selected").val());
        		  return false;
		});
	});
	</script>';
}

Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.

Dacă v-a plăcut acest fragment de cod, vă rugăm să consultați și alte articole de pe site, cum ar fi: Recenzie Shortcodes Ultimate: Adăugați Shortcode-uri în WordPress Rapid și Ușor.

Comentarii   Lasă un răspuns

  1. Salut, script foarte util, încă am o întrebare pentru îmbunătățire,
    it afișează sintaxa shortcode-urilor existente între paranteze, dar nu exact ID-urile disponibile.
    În plus, aș avea nevoie de o logică condițională inversă pentru a afișa doar de la anumite plugin-uri ca 'de inclus', puteți propune o abordare sau un script?
    Cu stimă

  2. Emmanuel Flossie January 19, 2014 at 4:50 pm

    apropo, dacă doriți să personalizați ce este afișat, puteți face ceva de genul acesta

    foreach ($shortcode_tags as $key => $val){

    if(!in_array($key,$exclude)){

    if ($key==’button’){

    $shortcodes_list .= “”.$key.””;

    }elseif ($key==’focus’){

    $shortcodes_list .= “”.$key.””;

    }else{

    $shortcodes_list .= ”.$key.”;

    }

    }

    }

    1. Salut Emmanuel,

      Am încercat să urmez tutorialul tău din comentarii și sunt puțin confuz cu privire la simbolul (“”) din „”. $ key. „”, poți explica la ce folosește?

  3. Emmanuel Flossie January 19, 2014 at 4:35 pm

    Exemplu grozav, mulțumesc mult, exact ce aveam nevoie pentru a afișa shortcode-urile mele personalizate! Continuați cu distribuțiile grozave 🙂

  4. yo kev postare grozavă! Mi-a economisit mult cod și multă durere căutând articole cu modalități mai complicate de a face asta. Am avut o întrebare. Când inserez codul, funcționează grozav. Am vrut să știu doar să-l afișez ca buton în schimb.

    1. Acesta nu este ceva care ar funcționa pentru acest fragment, deoarece majoritatea instalărilor WordPress ar avea multe, multe shortcode-uri. Acesta este unul dintre motivele pentru care folosesc un meniu de selecție, deoarece ar putea avea o listă de câte știe câte articole. Anunță-mă dacă interpretez greșit întrebarea ta,

      1. în loc de asta echo ' “Shortcode”';
        echo ' “”';

        1. Nu sunt sigur că înțeleg, folosiți formularul http://wpsnip.com/contact/ și trimiteți-mi un e-mail.

      2. vreau să afișeze o imagine în loc de shortcode-ul opțiunii

      3. cred că am pus greșit întrebarea. Nu vreau ca opțiunile din interiorul dropdown-ului să fie afișate ca buton, ci ca meniul dropdown propriu-zis să fie afișat ca buton, astfel încât, atunci când dau clic pe el, să apară un meniu care arată toate shortcode-urile.

  5. Snippet grozav, dar nu va funcționa pentru shortcode-uri mai complexe. De exemplu, îmi place să includ un shortcode sursă cu două array-uri: nume și link, astfel încât numele să fie afișat și să fie legat de pagina la care este direcționat. Dacă există vreo soluție, vă rog să-mi spuneți!

  6. ” acesta este un sfat bun” :)) clacks @google-78e9f950b24057773891758bcae63bb2:disqus 

    1. Cool, mă bucur că îți place snippet-ul.

  7. Salut Kevin,

    Există vreo modalitate de a lua dropdown-ul de la butonul media pe rândul 3 sau 2 al editorului tinymce? Deoarece cu încărcătorul actualizat (cu v3.3), nu arată bine.

    Mulțumesc,
    Hoko

    1. Și acum am verificat, funcționează acum cu wordpress 3.3… 🙁

      1. ………*nu funcționează….

        1. scuze din nou, funcționează corect cu wordpress 3.3.

          Dar încă întreb dacă putem muta meniul derulant din locul butoanelor media în oricare dintre rândurile de butoane tinymce?

          Mulțumesc Kevin

          1. +1 pentru această cerere de a adăuga meniul derulant în bara de meniu reală a editorului TinyMCE. Apropo, acesta este un fragment excelent și exact ceea ce caut, DAR aș dori ca meniul derulant să fie mutat. Arată puțin deplasat chiar lângă butonul media de încărcare și strică puțin CSS-ul.

        2. Nu ușor, nu,

  8. Fragment excelent Kevin, mulțumesc pentru asta. Am o întrebare – în acest moment, acest lucru îți permite pur și simplu să introduci eticheta shortcode de deschidere și închidere una lângă alta, dar ar fi și mai bine dacă ai putea selecta un bloc de text și etichetele de deschidere și închidere să încadreze acel text. Are sens? Crezi că ar fi posibil?

    1. Salut Matt, sigur, aceasta a fost doar o versiune timpurie, este în mare parte JQuery care va face acea parte. Nu sunt sigur când voi posta o versiune actualizată. Dar voi încerca să o fac cât mai curând posibil.

  9. Unable to perform Translation:Quota Exceeded. Please see http://code.google.com/apis/language/translate/overview.html - CyberMaster November 1, 2011 at 4:27 pm

    […] pentru a reține shortcode-urile, așa că am căutat pe internet și am găsit fragmentul lui Kevin Chard la http://wpsnipp.com/index.php/functions-php/update-automatically-create-media_buttons-for-shortcode-s… pentru a încorpora un meniu derulant de shortcode-uri în editor. Am modificat codul lui Kevin pentru a funcționa cu […]

  10. Când amestec codul Javascript de aici și îl schimb cu Javascript-ul „Add custom media_buttons for shortcode selection”, funcționează excelent 🙂 mulțumesc.. totuși.. selectarea se ciocnește ușor cu partea de sus a editorului meu, ascunzând puțin instrumentele de acolo..

    Nu este chiar așa de rău, dar arată ciudat.. am încercat CSS, dar nu funcționează
    Am o idee cum pot influența "media-buttons" div din interiorul fișierului meu functions.php?
    (doar ca să adaug o valoare margin-bottom: 10px)

    Mulțumesc oricum

    1. Poți stiliza elementele cu id=”sc_select” următorul cod va adăuga CSS. Nu sunt sigur dacă acest lucru va rezolva problemele, dar te va ajuta să te joci cu CSS-ul pentru a rezolva lucrurile.

      function wps_add_my_css(){? #sc_select{margin-bottom:10px;} < ?}

      add_action( 'admin_head-post.php', 'tinymce_title_css'); add_action( 'admin_head-post-new.php', 'tinymce_title_css');

      1. Mulțumesc, omule.. am înțeles asta, dar selectarea poate „margin” deoarece este în interiorul unui div.. asta e ok, am setat pur și simplu dimensiunea fontului la 11px și s-a așezat grozav deasupra barei de instrumente a editorului.

        Mulțumesc pentru acest cod grozav 🙂

        1. Cu plăcere, mă bucur că îți place fragmentul.

  11. Carlos Casarez August 5, 2011 at 4:12 am

    Există vreo modalitate de a specifica ordinea în care apare în div-ul #media-buttons? În prezent, pare să apară curățat spre stânga și îmi distruge zona principală de text.

    Totuși, un fragment de cod excelent.

    c.

    1. Ar trebui să fie chiar lângă pictograma adăugare media deasupra barei de instrumente a editorului, ca în imaginea de mai sus, nu este așa pentru tine?

  12. Cliff Paulick July 19, 2011 at 6:36 pm

    Scuzați-mă dacă omit ceva foarte evident, dar ce face inserarea shortcode-ului? Există capturi de ecran? Mulțumesc.

    1. Salut Cliff
      Shortcodurile sunt o mică bucată de cod pe care o poți adăuga la postările tale, fiind o modalitate scurtă de a adăuga funcționalitate sau, de fapt, orice. De exemplu, linkul de mai jos îți va permite să adaugi un iframe cu doar puțin cod. [ iframe url=”http://wpsnipp.com” ]

      http://wpsnipp.com/index.php/functions-php/iframe-shortcode-for-posts-and-pages/

      WordPress are, de asemenea, câteva shortcode-uri încorporate, cum ar fi [ gallery ] această pagină va oferi mai multe detalii despre shortcode-ul gallery.

      http://codex.wordpress.org/Gallery_Shortcode

      Cu toate acestea, codul de mai sus din această postare va crea o listă de shortcode-uri pe care le aveți disponibile, astfel încât să le puteți selecta pentru a le adăuga la postările dvs. Sper că acest lucru explică lucrurile puțin mai bine.

      1. Cliff Paulick July 19, 2011 at 7:59 pm

        Știu ce sunt shortcode-urile (și le iubesc, pentru că atunci puteți rămâne în Editorul Vizual – cum ar fi cel pentru iframe, care este grozav), dar mă întrebam dacă este necesar vreun cod suplimentar undeva. Întreb deoarece am văzut [/php] și [/html] și nu eram sigur de cazul de utilizare. Puneți cod PHP sau HTML chiar în Editorul Vizual? Mulțumesc.

        1. Acest cod va crea o listă de shortcode-uri pe care le aveți deja în instalarea dvs. de WordPress, deci dacă aveți [/php] sau [/html], atunci este specific pentru dvs.

      2. Cliff Paulick July 19, 2011 at 8:30 pm

        Am înțeles. Nu am acelea în lista mea de shortcode-uri – le-am văzut în captura dvs. de ecran de la începutul acestei postări.
        Pe baza comentariului dvs., cum diferă această funcționalitate de aceasta (http://wpsnipp.com/index.php/template/print-a-list-of-all-supported-shortcodes/)?
        Aveți sfaturi de unde pot obține shortcode-uri PHP sau HTML de utilizat?

        1. Este foarte diferit, linkul către snippet-ul postat va folosi doar print_r și va afișa array-ul în sine. Codul de mai sus va adăuga un meniu la ecranul editorului dvs. cu o listă de shortcode-uri disponibile. Când selectați unul, acesta va fi adăugat în editor.

  13. Cor van Noorloos June 11, 2011 at 12:02 pm

    Salut Kevin,

    Personal, cred că acesta va fi unul dintre cele mai bune și mai ușor de utilizat fragmente de cod pe care le voi folosi la crearea unui nou site.

    Ar fi, totuși, grozav să existe o a doua casetă de selecție care să listeze toate intrările (valorile shortcode) cumva.

    Cu stimă,

    Cor

    1. Super, mă bucur că îți place, poți explica mai în detaliu despre al doilea meniu de selecție?

  14. WordPress include deja jQuery… nu este necesar să îl aveți de două ori.

    1. Și dacă îl adăugați din anumite motive, ar trebui apelat cu wp_enqueue_script(“jquery”) înainte de wp_head().

      1. @vagrantradio:disqus acesta este un sfat bun.

    2. Salut Mark, ce mai faci,
      Este foarte adevărat, am făcut actualizările la fragment, nu sunt sigur ce a fost în cerealele mele azi dimineață.
      Mulțumesc pentru atenționare.

  15. Wordpress Add custom media_buttons for shortcode selection – wpsnipp.com Wordpress code snippets for your blog June 8, 2011 at 1:58 pm

    […] adaugă pictograma media. Editează valoarea= pentru a schimba textul inserat.Acest fragment de cod a fost actualizat recent ( selecție shortcode ).PHP add_action('media_buttons','add_sc_select',11); function add_sc_select(){ echo […]

Adaugă un comentariu

Suntem bucuroși că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de confidențialitate, iar toate linkurile sunt nofollow. NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.

Lista de verificare pentru lansarea WordPress

Lista de verificare finală pentru lansarea WordPress

Am compilat toate elementele esențiale de verificare pentru lansarea următorului dvs. site WordPress într-o singură carte electronică la îndemână.
Da, trimite-mi eBook-ul gratuit!