Der Kodex sagt
shortcode_atts()
kombiniert Benutzer-Shortcode-Attribute mit bekannten Attributen und füllt bei Bedarf die Standardwerte aus. Das Ergebnis enthält jeden Schlüssel aus den bekannten Attributen, zusammengeführt mit Werten aus Shortcode-Attributen.
Es macht für mich nicht viel Sinn (ich bin ein Neuling).
Hier ist ein Beispiel:
function wps_trend($atts) {
extract( shortcode_atts( array(
'w' => '500',
'h' => '330',
'q' => '',
'geo' => 'US',
), $atts));
$h = (int) $h;
$w = (int) $w;
$q = esc_attr($geo);
ob_start();
Kannst du das bitte erklären?
shortcode_atts()
funktioniert wie array_merge()
: Die zweite Liste der Argumente wird mit der ersten zusammengeführt. Der Unterschied ist: Es werden nur die Schlüssel zusammengeführt, die im ersten Argument ($default
) vorhanden sind.
extract()
nimmt dann die Array-Schlüssel und setzt diese als Variablennamen und ihre Werte als Variablenwerte. 'w' => '500'
wird in Ihrem Beispiel zu $w = '500'
.
Verwenden Sie nicht extract()
. Dieser sehr schlechte Codestil. Seine Verwendung war selbst im Kern veraltet , und das bedeutet etwas… :)
Ihr Beispiel sollte so geschrieben sein:
$args = shortcode_atts(
array(
'w' => '500',
'h' => '330',
'q' => '',
'geo' => 'US',
),
$atts
);
$w = (int) $args['w'];
$h = (int) $args['h'];
$q = esc_attr( $args['q'] );