Optimieren Sie Shortcode-Callbacks

Ich habe ein Plugin erstellt, um einige Shortcodes auf meiner WordPress-Seite hinzuzufügen. Aber ich bin ein PHP-Neuling, also glaube ich, dass es einige Fehler oder Möglichkeiten zur Optimierung gibt.

Es funktioniert gut und anscheinend gibt es keine Probleme. Die Speicherbelegung beträgt 00.04MByte. Könnten Sie bitte einen Blick darauf casting? Vielen Dank!

add_action( 'wp_enqueue_scripts', 'prefix_add_my_stylesheet' ); function prefix_add_my_stylesheet() { // Respects SSL, Style.css is relative to the current file wp_register_style( 'prefix-style', plugins_url('style.css', __FILE__) ); wp_enqueue_style( 'prefix-style' ); } /* Adsesnse Shortcode */ function get_adsense($atts) { return 'THE_ADSENSE_SCRIPT_GOES_HERE '; } add_shortcode('adsense', 'get_adsense'); /*Padding Shortcodes*/ function get_pad5($atts) { return '
'; } add_shortcode('pad5', 'get_pad5'); function get_pad10($atts) { return '
'; } add_shortcode('pad10', 'get_pad10'); function get_pad20($atts) { return '
'; } add_shortcode('pad20', 'get_pad20'); function get_pad25($atts) { return '
'; } add_shortcode('pad25', 'get_pad25'); function get_pad50($atts) { return '
'; } add_shortcode('pad50', 'get_pad50'); function get_pad75($atts) { return '
'; } add_shortcode('pad75', 'get_pad75'); function get_pad100($atts) { return '
'; } add_shortcode('pad100', 'get_pad100'); function get_clr($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'clr', 'get_clr' ); /* Alert Boxes */ function get_alertblue($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'alertblue', 'get_alertblue' ); function get_alertgreen($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'alertgreen', 'get_alertgreen' ); function get_alertyellow($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'alertyellow', 'get_alertyellow' ); function get_alertred($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'alertred', 'get_alertred' ); function get_alertgray($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'alertgray', 'get_alertgray' ); /* Style Boxes */ function get_stylegreen($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'stylegreen', 'get_stylegreen' ); function get_styleblue($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'styleblue', 'get_styleblue' ); function get_styleyellow($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'styleyellow', 'get_styleyellow' ); function get_stylered($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'stylered', 'get_stylered' ); function get_stylegray($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'stylegray', 'get_stylegray' ); function get_stylewhite($atts, $content=null) { return '
' . $content . '
'; } add_shortcode( 'stylewhite', 'get_stylewhite' );

Solutions Collecting From Web of "Optimieren Sie Shortcode-Callbacks"

Es gibt ein sehr wichtiges Programmierprinzip: TROCKEN – Wiederhole dich nicht .
Wann immer Sie feststellen, dass Sie fast den gleichen Job wiederholen, versuchen Sie eine Abstraktion zu schreiben.

Für Ihre pad* Shortcodes bedeutet das:

 function get_padding( $atts ) { $args = shortcode_atts( array( 'num' => 10 ), $atts ); return str_repeat( ' ', (int) $args['num'] ); } add_shortcode('pad', 'get_padding'); 

Jetzt können Sie den Shortcode [pad] wie folgt verwenden:

 [pad num=5] [pad num=10] [pad num=12000] [pad num=18] 

Der Vorteil ist: Wenn Sie sich entscheiden, die innere Logik Ihrer Shortcodes zu ändern, müssen Sie nur eine function berühren, nicht ein Dutzend.

Siehe auch diese Antwort .


Es gibt noch eine andere Möglichkeit: Verwenden Sie einen Callback für mehrere Shortcodes. Dies verwendet den dritten Parameter, den jeder Shortcode-Callback erhält.

 function multipass( $atts, $content = '', $shortcode = '' ) { $args = shortcode_atts( array ( 'name' => 'example' ), $atts ); $name = esc_attr( $args['name'] ); $content = esc_textarea( $content ); if ( 'textarea' === $shortcode ) return ""; if ( 'input' === $shortcode ) return ""; } add_shortcode( 'textarea', 'multipass' ); add_shortcode( 'input', 'multipass' ); 

verbunden

  • Shortcodes organisieren. Wie man alle von ihnen und ihre Attribute anzeigt?
  • Zeige den Shortcode, ohne ihn auszuführen
  • Führen Sie den Kurzwahlcode nur in einem anderen Kurzwahlcode aus
  • Welche Zeichen sind als Shortcode-Tag erlaubt und wie sollten sie bereinigt werden?