webentwicklung-frage-antwort-db.com.de

Shortcode-Rückrufe optimieren

Ich habe ein Plugin erstellt, um einige Shortcodes in meine WordPress-Site einzufügen. Aber ich bin ein PHP Neuling, daher glaube ich, dass es einige Fehler oder Optimierungsmöglichkeiten gibt.

Es funktioniert gut und anscheinend gibt es keine Probleme. Der Speicherbedarf liegt bei 00.04MByte. Könnten Sie bitte einen Blick darauf werfen? 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 '<div class="pad5"></div>';
}
add_shortcode('pad5', 'get_pad5');

function get_pad10($atts) {
    return '<div class="pad10"></div>';
}
add_shortcode('pad10', 'get_pad10');

function get_pad20($atts) {
    return '<div class="pad20"></div>';
}
add_shortcode('pad20', 'get_pad20');

function get_pad25($atts) {
    return '<div class="pad25"></div>';
}
add_shortcode('pad25', 'get_pad25');

function get_pad50($atts) {
    return '<div class="pad50"></div>';
}
add_shortcode('pad50', 'get_pad50');

function get_pad75($atts) {
    return '<div class="pad75"></div>';
}
add_shortcode('pad75', 'get_pad75');

function get_pad100($atts) {
    return '<div class="pad100"></div>';
}
add_shortcode('pad100', 'get_pad100');

function get_clr($atts, $content=null) {
     return '<div class="clr">' . $content . '</div>';
}
add_shortcode( 'clr', 'get_clr' );

/* Alert Boxes */
function get_alertblue($atts, $content=null) {
     return '<div class="ultra_alert_box ultra_box-blue">' . $content . '</div>';
}
add_shortcode( 'alertblue', 'get_alertblue' );

function get_alertgreen($atts, $content=null) {
     return '<div class="ultra_alert_box ultra_box-green">' . $content . '</div>';
}
add_shortcode( 'alertgreen', 'get_alertgreen' );

function get_alertyellow($atts, $content=null) {
     return '<div class="ultra_alert_box ultra_box-yellow">' . $content . '</div>';
}
add_shortcode( 'alertyellow', 'get_alertyellow' );

function get_alertred($atts, $content=null) {
     return '<div class="ultra_alert_box ultra_box-red">' . $content . '</div>';
}
add_shortcode( 'alertred', 'get_alertred' );

function get_alertgray($atts, $content=null) {
     return '<div class="ultra_alert_box ultra_box-gray">' . $content . '</div>';
}
add_shortcode( 'alertgray', 'get_alertgray' );

/* Style Boxes */

function get_stylegreen($atts, $content=null) {
     return '<div class="ultra_style_box ultra_style-green">' . $content . '</div>';
}
add_shortcode( 'stylegreen', 'get_stylegreen' );

function get_styleblue($atts, $content=null) {
     return '<div class="ultra_style_box ultra_style-blue">' . $content . '</div>';
}
add_shortcode( 'styleblue', 'get_styleblue' );

function get_styleyellow($atts, $content=null) {
     return '<div class="ultra_style_box ultra_style-yellow">' . $content . '</div>';
}
add_shortcode( 'styleyellow', 'get_styleyellow' );

function get_stylered($atts, $content=null) {
     return '<div class="ultra_style_box ultra_style-red">' . $content . '</div>';
}
add_shortcode( 'stylered', 'get_stylered' );

function get_stylegray($atts, $content=null) {
     return '<div class="ultra_style_box ultra_style-gray">' . $content . '</div>';
}
add_shortcode( 'stylegray', 'get_stylegray' );

function get_stylewhite($atts, $content=null) {
     return '<div class="ultra_style_box ultra_style-white">' . $content . '</div>';
}
add_shortcode( 'stylewhite', 'get_stylewhite' );
7
drabello

Es gibt ein sehr wichtiges Programmierprinzip: DRY - Wiederholen Sie sich nicht .
Wenn Sie feststellen, dass Sie fast den gleichen Job wiederholen, versuchen Sie, eine Abstraktion zu schreiben.

Für Ihre pad* Shortcodes bedeutet dies:

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 Kurzwahlen zu ändern, müssen Sie nur die Funktion eins berühren, nicht ein Dutzend.

Siehe auch diese Antwort .


Es gibt eine andere Möglichkeit: Verwenden Sieonecallback fürmultipleshortcodes. Dies verwendet den dritten Parameter , den jeder Shortcode-Rückruf 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 "<textarea name='$name'>$content</textarea>";

    if ( 'input' === $shortcode )
        return "<input name='$name' value='$content' />";
}
add_shortcode( 'textarea', 'multipass' );
add_shortcode( 'input',    'multipass' );

Verbunden

11
fuxia