Cerchi un modo per creare pulsanti multimediali per aggiungere automaticamente shortcode? Questo snippet aggiunger à un menu a tendina con un elenco generato automaticamente dei tuoi shortcode.
Istruzioni:
Aggiungi questo codice al file functions.php del tuo tema o in un plugin specifico per il sito
Facoltativamente, modifica la riga 10 dell'array per escludere determinati shortcode.
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 ' <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>';
}
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: Recensione di Shortcodes Ultimate: Aggiungi shortcode a WordPress in modo rapido e semplice.
Ciao, script molto utile, ho ancora una domanda per miglioramenti,
mostra la sintassi degli shortcode esistenti tra parentesi, ma non gli ID effettivamente disponibili.
Inoltre, avrei bisogno di una logica condizionale opposta per mostrare solo da alcuni plugin come 'da includere', puoi proporre un approccio o uno script?
Saluti
a proposito, se vuoi personalizzare cosa viene stampato, puoi fare qualcosa del genere
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 . "";
}
}
}
Ciao Emmanuel,
Ho provato a seguire il tuo tutorial nei commenti e sono un po' confuso riguardo al simbolo ("") in "" . $key . "", puoi spiegare a cosa serve?
Ottimo esempio, grazie mille, proprio quello che mi serviva per visualizzare i miei shortcode personalizzati! Continua con le ottime condivisioni :)
yo kev ottimo post! Mi ha risparmiato un sacco di codice e un sacco di dolore nella ricerca di articoli con modi più complicati per farlo. Avevo una domanda. Quando inserisco il codice, funziona benissimo. Volevo sapere solo se mostrarlo come un pulsante invece.
Questa non è una cosa che funzionerebbe per questo snippet poiché la maggior parte delle installazioni di WordPress avrebbe molti molti shortcode. Questo è uno dei motivi per cui uso un menu a tendina, poiché potrebbe avere un elenco di chissà quanti elementi. Fammi sapere se interpreto male la tua domanda,
invece di stampare ' "Shortcode"'
stampa ' ""';
Non sono sicuro di seguirti, usa il modulo http://wpsnip.com/contact/ e inviami un'email.
voglio che ripeta un'immagine invece del codice breve dell'opzione
penso di aver posto la domanda in modo errato. Non voglio che le opzioni all'interno del menu a discesa vengano visualizzate come un pulsante, ma che il menu a discesa effettivo venga visualizzato come un pulsante, in modo che quando ci clicco sopra, si apra un menu che mostra tutti i codici brevi.
Snippet fantastico ma non funzionerà per codici brevi più complessi. Ad esempio, mi piace includere un codice breve di origine con due array: nome e link, in modo che il nome venga visualizzato e collegato alla pagina a cui è diretto. Se c'è una soluzione, fammelo sapere!
” questo è un buon consiglio” :)) clacks @google-78e9f950b24057773891758bcae63bb2:disqus
Fantastico, sono contento che ti piaccia lo snippet.
Ciao Kevin,
C'è un modo per spostare il menu a discesa dal pulsante multimediale alla terza o seconda riga dell'editor tinymce? Perché con l'uploader aggiornato (con v3.3), non ha un bell'aspetto.
Grazie,
Hoko
E ora ho controllato, ora funziona con wordpress 3.3… 🙁
………*non funziona….
mi dispiace ancora, funziona correttamente con wordpress 3.3.
Ma sto ancora chiedendo se possiamo spostare il menu a discesa dalla posizione dei pulsanti multimediali a una qualsiasi delle righe dei pulsanti di tinymce?
Grazie Kevin
+1 per questa richiesta di aggiungere il menu a discesa nella barra dei menu effettiva dell'editor TinyMCE. A proposito, questo è un ottimo snippet e proprio quello che sto cercando, MA vorrei che il menu a discesa fosse spostato. Ha un aspetto un po' fuori posto proprio accanto al pulsante multimediale di caricamento e sta un po' rompendo il CSS.
Non facilmente, no,
Ottimo snippet Kevin, grazie. Ho una domanda: al momento questo permette semplicemente di inserire il tag di apertura e chiusura del codice breve uno accanto all'altro, ma sarebbe ancora meglio se si potesse selezionare un blocco di testo e far sì che i tag di apertura e chiusura racchiudano quel testo. Ha senso? Pensi che sarebbe possibile?
Ciao Matt, certo, questa era solo una versione iniziale, che è per lo più JQuery che farà quella parte. Non sono sicuro di quando pubblicherò una versione aggiornata, tuttavia. Ma cercherò di farlo al più presto.
[…] per ricordare gli shortcode, quindi ho cercato sul web e ho trovato lo snippet di Kevin Chard su http://wpsnipp.com/index.php/functions-php/update-automatically-create-media_buttons-for-shortcode-s… per incorporare un menu a discesa di shortcode nell'editor. Ho modificato il codice di Kevin per funzionare con […]
Quando mescolo il codice Javascript da qui e lo sostituisco con il Javascript "Aggiungi media_buttons personalizzati per la selezione degli shortcode", funziona benissimo 🙂 grazie.. ancora.. il selettore si scontra leggermente con la parte superiore del mio editor, nascondendo leggermente gli strumenti superiori.
Questo non è male ma sembra strano.. ho provato con Css ma non funziona
Hai un'idea di come posso influenzare il div "media-buttons" dal mio functions.php?
(solo per aggiungere un valore di margin-bottom: 10px)
Grazie comunque
Puoi stilizzare le cose con id=”sc_select” il seguente codice aggiungerà css. Non sono sicuro se questo risolverà le cose, ma ti aiuterà a giocare con il css per sistemare le cose.
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');
Grazie amico.. l'ho capito ma il selettore può "margine" dato che è dentro un div.. va bene comunque, ho semplicemente impostato la dimensione del carattere a 11px e si è posizionato perfettamente sopra la barra degli strumenti dell'editor.
Grazie per questo ottimo codice :)
Prego, sono contento che ti piaccia lo snippet.
C'è un modo per specificare l'ordine in cui appare nel div #media-buttons? Al momento sembra che appaia spostato a sinistra e sta rovinando la mia area di testo principale.
Piccolo snippet di codice fantastico comunque.
c.
Dovrebbe essere proprio accanto all'icona aggiungi media sopra la barra degli strumenti dell'editor come nell'immagine sopra, non è così per te?
Scusa se mi sfugge qualcosa di molto ovvio, ma cosa fa l'inserimento dello shortcode? Ci sono screenshot in giro? Grazie.
Ciao Cliff
Gli shortcode sono un piccolo pezzo di codice che puoi aggiungere ai tuoi post, che è un modo breve per aggiungere funzionalità o davvero qualsiasi cosa. Ad esempio, il link qui sotto ti permetterà di aggiungere un iframe con solo un piccolo codice. [ iframe url=”http://wpsnipp.com” ]
http://wpsnipp.com/index.php/functions-php/iframe-shortcode-for-posts-and-pages/
WordPress ha anche alcuni shortcode integrati come [ gallery ] questa pagina fornirà maggiori dettagli sullo shortcode della galleria.
http://codex.wordpress.org/Gallery_Shortcode
Tuttavia il codice sopra in questo post creerà un elenco di shortcode disponibili in modo da poterli selezionare per aggiungerli ai tuoi post. Spero che questo aiuti a spiegare le cose un po' meglio.
So cosa sono gli shortcode (e li adoro, perché così puoi rimanere nell'Editor Visuale – come il tuo iframe, che è fantastico), ma mi chiedevo se fosse necessario altro codice. Chiedo perché ho visto [/php] e [/html] e non ero sicuro del caso d'uso. Inserisci codice PHP o HTML direttamente nell'Editor Visuale? Grazie.
Questo codice creerà un elenco di shortcode che hai già installato in WordPress, quindi se hai [/php] o [/html] allora è specifico per te.
Capito. Non li ho nel mio elenco di shortcode – li ho visti nella tua schermata all'inizio di questo post.
In base al tuo commento, in che modo questa funzionalità è diversa da questa (http://wpsnipp.com/index.php/template/print-a-list-of-all-supported-shortcodes/)?
Qualche consiglio su dove trovare shortcode PHP o HTML da usare?
È molto diverso, il link allo snippet pubblicato utilizzerà solo print_r e stamperà l'array stesso. Il codice sopra aggiungerà un menu alla schermata dell'editor con un elenco di shortcode disponibili. Quando ne selezioni uno, lo aggiungerà all'editor.
Ciao Kevin,
Personalmente penso che questo sarà uno dei migliori e più facili pezzi di codice che userò quando creerò un nuovo sito.
Sarebbe comunque fantastico avere una seconda casella di selezione che elenchi tutte le voci (valori degli shortcode) in qualche modo.
Cordiali saluti,
Cor
Fantastico, sono contento che ti piaccia, puoi spiegare un po' più in dettaglio il secondo menu di selezione?
WordPress include già jQuery... non c'è bisogno di averlo due volte.
E se lo aggiungi per qualche motivo, dovrebbe essere chiamato con wp_enqueue_script("jquery") sopra wp_head().
@vagrantradio:disqus questo è un buon consiglio.
Ciao Mark come stai,
Questo è molto vero, ho apportato gli aggiornamenti allo snippet, non so cosa c'era nel mio cereale stamattina.
Grazie per l'avviso.
[...] aggiungi icona media. Modifica il value= per cambiare il testo inserito. Questo snippet è stato recentemente aggiornato ( selezione shortcode ).PHP add_action('media_buttons','add_sc_select',11); function add_sc_select(){ echo [...]