2016-05-29 4 views
0

Ich habe ein Plugin geschrieben.Einen Plugin-Einstellungswert als Shortcode-Attribut einfügen

Eine der Einstellungen des Plugins ist eine URL/Seite.

Ich möchte, dass mein Client weiterhin den Builder für Seiten verwenden kann, um Schaltflächen zu erstellen, die mit der URL verknüpft werden, die in den Einstellungen des Plugins eingegeben wird.

Der Client könnte die URL für jede Schaltfläche, die er erstellt, manuell eingeben, aber das wäre mühsam und würde zu einem großen Problem werden, wenn sich die URL in den Einstellungen des Plugins ändert.

Also, ich möchte in der Lage sein, den URL-Einstellungswert des Plugins als das URL-Attribut eines Drittanbieter-Tastenkurzcodes zu verwenden.

Ist das möglich? Etwas wie:

[button url="{get the plugin's URL setting}"][/button] 

Antwort

0

Ja definitiv möglich.

Sie müssten die Shortcode-Funktionalität zu Ihrem Plugin hinzufügen. Am besten verwenden Sie einen eindeutigen Namen, um Konflikte zu vermeiden (nicht 'Schaltfläche'). in Ihrer Plugin PHP-Datei die Funktion hinzufügen und mit der add_shortcode Funktion registrieren wie so:

function shortcodeName_function($atts) { 
    // add attribute handling and get the 'url' parameter 
    $output = '<button a href="'. $url . '" class="button">'; 
    return $output; 
} 


add_shortcode('shortcodeName', 'shortcodeName_function'); 

Jetzt können u mit diesem Namen jetzt einem kurzen Code verwenden, wenn das Plugin aktiviert ist.

[shortcodeName] 

Siehe den Link der Wordpress-Dokumentation für weitere Informationen zur Parameterverwaltung: wordpress shortcode api

EDIT: ah sorry, ich glaube, ich den Punkt etwas verpasst. Was Sie tun können, ist - speichern Sie die Plugin-URL-Einstellung in einem Cookie und überprüfen Sie den Cookie-Wert in der Funktionscode.

0

Wenn der Shortcode keine URL hat, können Sie die Standardeinstellungen URL in der Shortcode Return-Ausgabe angeben.

Like this

add_shortcode('button', 'shortcode_function_button'); 

function shortcode_function_button($atts){ 

    $attr = shortcode_atts(array(
     'url' => get_option('button_default_url') , // get your setting default url if shortcode have not 
    ), $atts);          // attr url="http://example.com" then it use default 
                 // setting url 

    return '<a href="'.esc_url($attr['url']).'" class="button">Button</a>'; 
} 

Wenn schon bauen Shortcode in Plugin oder das Thema dann Shortcallback-Funktion finden und atts auf diese Weise ändern.

Wenn Probleme bei der Suche nach Shortcode-Callback-Namen von Drittanbietern auftreten, überprüfen Sie in Ihrer Plugin-Datei alle registrierten Shortcodes mit Callback.

global $shortcode_tags; 

print_r($shortcode_tags); 

// show all shortcodes with callback 
/*Array 
(
    [embed] => __return_false 
    [wp_caption] => img_caption_shortcode 
    [caption] => img_caption_shortcode 
    [gallery] => gallery_shortcode 
    [playlist] => wp_playlist_shortcode 
    [audio] => wp_audio_shortcode 
    [video] => wp_video_shortcode 
    [button] => button_shortcode 

)*/ 

Wenn Sie nicht wollen, zu einer Änderung in thired Partei Shortcode und verwalten in Ihrem Plugin

  1. Entfernen Short vorher thired Partei Plugin erklärt und in Ihrem Plugin Anfang der Datei hinzufügen.

    remove_shortcode('button'); // https://developer.wordpress.org/reference/functions/remove_shortcode/

  2. gleichen Tag nach Short entfernen neu erstellen aber eigenen Callback-Namen verwenden und als thired Partei Short wie diese

    add_shortcode('button', 'your_own_callback'); 
    
    function your_own_callback($atts, $content){ 
    
    $attr = shortcode_atts(array(
    'url' => get_option('button_default_url') , // Use same atts thired party using atts 
    ), $atts); 
    
    return button_shortcode($attr, $content); // Use thired party callback function name. 
    } 
    
gleiche Arbeit
Verwandte Themen