Support » Allgemeine Fragen » Shortcodeänderung funktioniert nivht

  • Gelöst gottfrieds

    (@gottfrieds)


    Hallo zusammen,

    ich habe einen funktionierenden Short:

    
    add_shortcode( 'ktg-zitat', 'mein_zitat');
    function mein_zitat ($attr, $content) {
    	$string = '<div style="border: 2px solid #980267; max-width: ';
    	$string .= $attr['weite'];
        $string .= '; margin: 0px 10px 10px 10px; padding: 10px 10px 10px 10px; float: right; font-size: 90%; font-style: italic; ">';
    	$string .= $content . '</div>';
    	return $string;
    }
    

    Diesen möchte ich „mehr“ responsive machen. Dazu habe ich folgenden Code geschrieben:

    
    add_shortcode( 'ktg-zitat', 'ktg_zitat');
    function ktg_zitat ($attr, $content) { ?>
    <style>
    .ktg-zitat, .ktg-zitat100 {
       max-width=200px;
       border: 2px solid #980267; 
       margin: 0px 10px 10px 10px; 
       padding: 10px 10px 10px 10px; 
       float: right; 
       font-size: 90%; 
       font-style: italic;
    }
    
    .ktg-zitat100 {
       width=100%;
    }
    
    .ktg-zitat {
       max-width=33%;
    }
    
    /* @media (max-width:1024px) {
          .ktg-zitat {
              max-width=50%;
           }
    }
    
    @media (max-width:600px) {
          .ktg-zitat {
              max-width=100%;
           }
    }
    */
    
    </style>
    <?php
        $class = 'ktg-zitat';
        if ($attr[weite] == 'full') { 
    		$class = 'ktg-zitat100';
    	}
    	$string = '<div class="' . $class . '">';
    	$string .= $content . '</div>';
    	return $string;
    }
    

    Leider wird der tag max-width nicht erkannt und die Breite des Textes ist immer 100%.

    Was mache ich falsch? Hilfe ist willkommen.

    Gottfried

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Falsch:
    max-width=50%;
    Richtig:
    max-width:50%;

    Doppelpunkt, kein Ist-gleich-Zeichen 😉

    … Doppelpunkt, kein Ist-gleich-Zeichen

    Das ist nur einer von mehreren Fehlern in der Shortcode-Funktion:

    • Die Shortcode-Funktion sollte nie Inhalt direkt ausgeben (echo), sondern nur zurückgeben (return).
    • Der Shortcode würde bei einer Mehrfachverwendung jedesmal die CSS-Regeln erneut ausgeben, statt sie einmal in den <head> zu schreiben.
    • Die Shortcode-Attribute werden nicht sanitisiert. (Sicherheitslücke)
    • Das Shortcode-Attribut weiter wird falsch abgerufen.
    • Die CSS-Regel enthält einen Syntaxfehler (wie bereits von @aminteractiondesign festgestellt).
    • Die CSS-Eigenschaften für padding können gekürzt werden.
    • PHP-Coding-Standards werden nicht eingehalten.
    Thread-Starter gottfrieds

    (@gottfrieds)

    Danke – das hat geholfen. Die =-Zeichen wurden us dem alten Style kopiert!

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „Shortcodeänderung funktioniert nivht“ ist für neue Antworten geschlossen.