Un shortcode può ottenere HTML/Testo dal contenuto e restituirlo due volte con HTML aggiuntivo?
Sto cercando di ridurre il mio carico di lavoro e speravo che qualcuno potesse dirmi se questo è possibile.
Si tratta di immagini configurate in uno slider che mostra una sovrapposizione di testo sull'immagine nella slide successiva in un post multipagina.
Ecco cosa sto cercando di fare. Prendere questo:
<h2>Titolo Immagine</h2>
[caption]<img src="http">[/caption]
testo per la slide
E restituirlo in questo modo:
<div class="singe_slide">
<h2>Titolo Immagine</h2>
[caption]<img src="http">[/caption]
</div>
<!--nextpage-->
<div class="singe_slide">
<h2>Titolo Immagine</h2> //Stessa immagine pagina successiva
[caption]<img src="http">[/caption]
<div class="slide_caption"><div class="captExt">
testo per la slide
</div></div>
<!--nextpage-->
Questo è ciò che sto attualmente usando per i miei shortcode, ma richiede lo stesso tempo che aggiungere manualmente i div, ed è molto disordinato. Sembra così:
[Slide]<h2>Titolo Immagine</h2>
[caption]<img src="http">[/caption][/Slide]
<!--nextpage-->
[Slide]<h2>Titolo Immagine</h2> //Stessa immagine pagina successiva
[caption]<img src="http">[/caption]
[SlideCap]testo per la slide[/SlideCap][/Slide]
<!--nextpage-->
E questi sono i miei 2 shortcode:
function Slide($atts, $content = null) {
$content = wpautop(trim($content));
return '<div class="singe_slide">' . do_shortcode($content) . '</div>';
}
add_shortcode('Slide', 'Slide');
function SlideCap($atts, $content = null) {
$content = wpautop(trim($content));
return '<div class="slide_caption"><div class="captExt">' . do_shortcode($content) . '</div></div>';
}
add_shortcode('SlideCap', 'SlideCap');
Sono aperto a suggerimenti su un modo più semplice per fare questo. Questo è il mio primo shortcode, quindi sono nuovo.
È possibile ottenere qualcosa tra gli shortcode come variabile?
[shortcode]Questa Parte Qui[/shortcode]
Ok, penso di aver capito cosa stai effettivamente chiedendo. Stai chiedendo qual è la variabile per la parte tra gli shortcode. Se questa è l'unica cosa che stai chiedendo, allora la risposta è la variabile parametro $content
. Stai già elaborandola nel tuo codice.
Inoltre, nel tuo esempio, sembra che tu abbia un terzo shortcode, [caption]
, che non stai elaborando. È voluto? Non sembra che tu voglia produrre HTML finale con quello dentro, quindi questa soluzione presume che tu non lo voglia.
Presumo che quello che desideri sia un formato di shortcode semplice da usare come:
[slide=TitoloImmagine][slideimg]http://some.domain/slide.jpg[/slideimg][slidecap]Questa è la didascalia.[/slidecap][/slide]
Che puoi poi elaborare semplicemente modificando le tue funzioni in questo modo:
function shortcode_slide($atts, $content = null) {
if(empty($atts)) {
$img_title='';
} else {
// [slide=Titolo]...[/slide]
// [slide="Titolo con più parole"]...[/slide]
$atts = $this->attributefix( $atts );
$img_title = '<h2>'.trim(array_shift($atts),'="').'</h2>'; //Rimuovi virgolette e uguali.
}
$content = wpautop(trim($content));
return '<div class="singe_slide">'.$img_title. do_shortcode($content) . '</div>';
}
add_shortcode('slide', 'shortcode_slide');
function shortcode_slidecap($atts, $content = null) {
$content = wpautop(trim($content));
return '<div class="slide_caption"><div class="captExt">' . do_shortcode($content) . '</div></div>';
}
add_shortcode('slidecap', 'shortcode_slidecap');
function shortcode_slideimg($atts, $content = null) {
$content = wpautop(trim($content));
return '<img src="'.$content.'" />';
}
add_shortcode('slideimg', 'shortcode_slideimg');
Questo dovrebbe produrre HTML funzionante.
