wake-up-neo.net

Shortcode setzen HTML wie <img>

$atts = shortcode_atts( array(

        'path' => 'https://s.w.org/about/images/logos/wordpress-logo-simplified-rgb.png'

    ), $atts);

Das Obige ist ein Teil des Shortcodes. Im Wordpress-Texteditor wird dieser Shortcode folgendermaßen erstellt →

[theimg  path=""]

das Anführungszeichen muss die Bild-URL dieses → haben

[theimg path = "https://geordiebiker.files.wordpress.com/2011/10/audrey-marnay-longchamp-commando-drive-side.jpg"]

Problem:

wenn wir uns im visuellen Modus des Texteditors befinden und eine Bild-URL in diese Kommas einfügen, wird tatsächlich das Bild und nicht die URL abgerufen. Ich habe ein gif gemacht, um dies zu erklären .

Ich glaube, dass diese Desinfektion wie esc_url usw. fehlt, aber ich kenne die genaue Lösung nicht.

Update: Wenn ich nur die URL in den Shortcode einfüge, fügt der Editor die <img src=""> Tags hinzu?

PS. → Das Bild kann hier nicht hochgeladen werden, da es über 2 MB groß war.

Update 11. Januar 2018

$output = '<div class="someclasss">';

        $output .= '<img class="someclass1" src="'.$atts['simg'].'" alt="' .$caption. '" >';

    $output .= '<i class="fa fa-expand" aria-hidden="true"></i>';

$output .= '</div>';

return $output;

Auf obige Weise wird die Ausgabe im Browser gerendert.

Schließlich sieht es im Browser so aus:

<img src="<img src="http://www.qygjxz.com/data/out/84/6074239-free-image.jpg" />">

Gibt es eine Möglichkeit, wie wir sicherstellen können, dass im src="'.$atts['path'].'" dieser Teil:

.$atts['simg'].

nimmt nur URL und streift alles raus?

4
The WP Novice

Dieses Verhalten ist höchstwahrscheinlich beabsichtigt und kann deaktiviert werden. Es kann jedoch auch andere Funktionen beeinträchtigen. Es gibt einige Problemumgehungen, die Sie ausprobieren können.

Teilen Sie die Bild-URL und den Dateinamen auf

Sie können die Argumente wie folgt an Ihren Shortcode übergeben:

[theimg 
    path="https://s.w.org/about/images/logos/" 
    filename="wordpress-logo-simplified-rgb.png"
]

Dadurch wird verhindert, dass der Editor die URL analysiert. Sie können die Werte jedoch abrufen und in Ihrem PHP Code zusammenfassen.

Verwende preg_match()

Also konvertiert der Editor die URL in ein vollständiges HTML-Bild? Gut, lass ihn das machen. Nachdem der Editor das vollständige Bild an den Shortcode übergeben hat, können wir einen preg_match in unserem PHP Code verwenden, um die URL zu extrahieren:

preg_match( '@src="([^"]+)"@' , $img, $match );

Dadurch wird der $img-Inhalt analysiert und die src des <img>-Tags zurückgegeben.

1
Jack Johansson