Mehrere Parameter für einen Shortcode

Ich arbeite daran, einige Shortcodes für meinen Blog zu erstellen. Ich kann einen einzelnen Parameter für meinen Shortcode setzen, aber nicht sicher, wie man verschiedene Parameter einstellt.

Zum Beispiel kann ich [myshortcode myvalue] um einen HTML-Block innerhalb des Post-Inhalts auszugeben.

Hier ist, was ich gerade benutze:

 function test_shortcodes( $atts ) { extract( shortcode_atts( array( 'myvalue' => '
' ), $atts ) ); return $myvalue; } add_shortcode( 'myshortcode', 'test_shortcodes' );

Nun, wie kann ich [myshortcode myothervalue] um einen anderen HTML-Block auszugeben?

Bitte beachten Sie, dass der Shortcode identisch ist, nur der Parameter wird geändert.

Solutions Collecting From Web of "Mehrere Parameter für einen Shortcode"

Schauen wir uns den Shortcode an

 [SH_TEST var1="somevalue" var2="someothervalue"]THE SHORTCODE CONTENT[/SH_TEST] 

Die Shortcode-Handler-function akzeptiert 3 Parameter

  1. $atts – ein Array von Attributen, die in unserem Fall an den Shortcode übergeben werden:

    • $atts['var1'] wird auf 'somevalue'
    • $atts['var2'] wird auf 'someothervalue'
  2. $content – ist eine Zeichenkette des Werts, der in den shortcode-Tags eingeschlossen ist, in unserem Fall: – $content wird auf THE SHORTCODE CONTENT

  3. $tag – ist eine Zeichenfolge des Shortcode-Tags, in unserem Fall: – $tag ist auf SH_TEST

Wenn ich einen Shortcode erstelle, definiere ich normalerweise die Standardwerte und führe sie mit den Werten zusammen, die vom Shortcode-Tag ex übergeben wurden:

 add_shortcode('SH_TEST','SH_TEST_handler'); function SH_TEST_handler($atts = array(), $content = null, $tag){ shortcode_atts(array( 'var1' => 'default var1', 'var2' => false ), $atts); if ($atts['var2']) return 'myothervalue'; else return 'myvalue'; } 

Wenn Sie den Shortcode wie atts[0] wird der Wert enthalten:

 add_shortcode( 'test', 'test_callback' ); function test_callback( $atts ) { return $atts[0]; } 

Eine andere Möglichkeit ist, den Wert mit einem Namen aufzurufen:

 [myshortcode val="myvalue"] function test_callback( $atts ) { return $atts["val"]; } 

Du machst es besser so:

 function test_shortcodes( $atts ) { extract( shortcode_atts( array( 'type' => 'myvalue' ), $atts ) ); switch( $type ){ case 'myvalue': $output = '
'; break; case 'myothervalue': $output = '
'; break; default: $output = '
'; break; } return $output; } add_shortcode( 'myshortcode', 'test_shortcodes' );

Benutze es so:

[myshortcode type="myvalue"] um

auszugeben

und

[myshortcode type="myothervalue"] um

Dieser Weg funktioniert in jedem Fall für mich mit [myshortcode type = “myvalue”]

 function test_shortcodes( $atts = array() ) { extract( shortcode_atts( array( 'type' => 'myvalue' ), $atts ) ); switch( $atts['type] ){ case 'myvalue': $output = '
'; break; case 'myothervalue': $output = '
'; break; default: $output = '
'; break; } return $output; } add_shortcode( 'myshortcode', 'test_shortcodes' );

Und wenn Sie einen weiteren Parameter hinzufügen wollen, müssen Sie nur [myshortcode type = “myvalue” other = “somevalue”]

 test_shortcodes( $atts = array() ) { extract( shortcode_atts( array( 'type' => 'myvalue', //Could be default 'other' => 'somevalue' //Could be default ), $atts ) ); switch( $atts['other'] ){ case 'somevalue': $output = '
somevalue
'; break; case 'myothervalue': $output = '
'; break; default: $output = '
'; break; } return $output; } add_shortcode( 'myshortcode', 'test_shortcodes' );

ich hoffe das hilft