qualcuno conosce un metodo per estrarre i parametri e il contenuto da WordPress Shortcode Strings con Javascript o jQuery in un array o variabili Javascript?
Shortcode come questo:
[button url="http://...." color="#00000"]Contact me![/button]
o in questo modo:
[tabs]
[tab title="Title 1"]Content Tab 1[/tab]
[tab title="Title 2"]Content Tab 2[/tab]
[/tabs]
Ho provato a trovare una libreria o alcune regex di lavoro, ma non sono riuscito a trovarne.
Situazione:
Ho già sviluppato un generatore di cortocircuito, che genera cortocircuiti dai valori inseriti dagli utenti nei campi di input. Ora voglio il modo Oposit:
Un utente seleziona uno shortcode nell'editor epreme un pulsante "modifica con generatore" e quindi il javascript ottiene i parametri dallo shortcode. Dopodiché apre la finestra di dialogo da questo shortcode usando jquery-ui. Quindi dovrebbe riempire i valori nei campi corrispondenti in una finestra di dialogo, in modo che l'utente possa modificarli facilmente.
Penso che una versione javascript corrispondente della funzione wordpress shortcode_atts () faccia il lavoro ?!
Grazie per il tuo aiuto!
risposte:
2 per risposta № 1Quello che dovrei fare è stampare le variabili JS all'interno dello Shortcode:
add_shortcode( "buttons", "js_vars_so_19604963" );
function js_vars_so_19604963( $atts, $content = null, $shortcode )
{
$output = "Normal shorcode work here";
$output .= "<script type="text/javascript">
var sc_button_color = "" . $atts["color"]. "";
</script>";
return $output;
}
Quindi, accedi a loro in JavaScript: console.log(sc_button_color)
.
Un utente seleziona uno shortcode nell'editor e preme un pulsante "edit with generator" e quindi il javascript ottiene i parametri dallo shortcode.
Per sapere cosa l'utente ha selezionato nella casella dei contenuti di cui abbiamo bisogno tinyMCE.activeEditor.selection.getContent
. Questo getContent
deve essere analizzato con RegEx per estrarre lo Shortcode esatto e i suoi attributi. Non ci sono soluzioni predefinite per questo e dovrai costruirlo da zero, caso per caso.
1 per risposta № 2
WordPress ha un nuovo oggetto sul wp
oggetto chiamato shortcode
. È una funzione di costruzione per creare oggetti Javascript wp.shortcode. Puoi usare i suoi metodi per fare ogni genere di cose. Penso che sia meglio ispezionare l'implementazione nel core di WordPress, è ben commentato e ha alcuni metodi implementati.
Questo metodo consente di elaborare codici brevi in una stringa sostituendoli mediante l'uso di una funzione di callback.
wp.shortcode.replace( tag, text, callback )
Questo metodo è utile quando devi catturare i codici brevi da una stringa per elaborarli altrove e mantenere un riferimento ad essi.
wp.shortcode.next( tag, text, index )
Questo metodo genera un RegExp per identificare uno shortcode. La regex di base è funzionalmente equivalente a quella trovata in get_shortcode_regex()
.
wp.shortcode.regexp( tag )
Questo metodo consente di analizzare gli attributi shortcode dal testo.
wp.shortcode.attrs( text )
C'è una vista in più, vedi il nucleo per quello.