it-swarm-eu.dev

Výchozí hodnoty atributů shortcodes

Tuto konstrukci používám k implementaci vlastního krátkého kódu:

function column_with_icon($atts, $content = null) {
    extract(shortcode_atts(array(
        'icon' => 'onebit_03'
    ), $atts));

    return '<div class="column3">
    <img class="features-icon" alt="icon" src="' . get_bloginfo("template_url") . '/images/icons/' . $icon . '.png"/>
                            <div class="feature-content">' . $content . $icon . '</div>';
}

add_shortcode('column-icon', 'column_with_icon');

Když se pokusím přidat takový obsah, postupujte takto:

[column-icon icon="onebit_13"]
<h3>What is Lorem ipsum?</h3>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
<a href="#" class="main-theme-link">Learn more</a></div>
[/column-icon]

Výchozí hodnota atributu 'icon' není přepsána a dostanu ji rovnou 'onebit_03', ne 'onebit_13' Co s tím mohu udělat?

UPDATE Zde je kód, který používám k načítání a prezentaci dat:

function skible_load_special_offer_section() {
    $content = get_option("prc_speciall_offer_text", true);
    if (get_option("prc_show_special_offer_section")) {
        echo stripslashes(do_shortcode('<!--Start Special offer (in border) content-->
                    <div class="border-top"></div>
                    <div class="border-middle">
                        <div class="special-offer-area">
                            <div class="special-offer-image-left">
                                <img alt="image" src="' . get_bloginfo("template_url") . ' /colors/magic_night/special-offer-image.png"/>
                            </div>
                            <div class="special-offer-content-right">' . $content . '</div>
            <div class = "clear"></div>
            </div>
            </div>
            <div class = "border-bottom"></div>
            <!--End Special offer (in border) content-->'));
    }
}
1
Sergei Basharov

Nemám ponětí, co se děje v nastavení. Jasně krátký kód je řádně zaregistrován, ale nějaký konkrétní případ mu brání v analýze.

Toto je testovací kód, který zhruba replikuje, jak je krátký kód analyzován pro spuštění:

$content = get_option("prc_speciall_offer_text", true);
$pattern = '/'.get_shortcode_regex().'/s';
preg_replace_callback( $pattern, 'var_dump', $content );

Výstup pole by měl odpovídat následujícímu parametru: get_shortcode_regex() spec:

1/6 - Extra [nebo] umožňující únik krátkých kódů s dvojitým [[]]

2 - Název krátkého kódu

3 - Seznam krátkých kódů

4 - Vlastní zavírání /

5 - Obsah krátkého kódu, který zabalí nějaký obsah.

To je to, co pro mě vypíše:

array
  0 => string '[column-icon icon="onebit_13"]
<h3>What is Lorem ipsum?</h3>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
<a href="#" class="main-theme-link">Learn more</a></div>
[/column-icon]' (length=389)
  1 => string '' (length=0)
  2 => string 'column-icon' (length=11)
  3 => string ' icon="onebit_13"' (length=17)
  4 => string '' (length=0)
  5 => string '
<h3>What is Lorem ipsum?</h3>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
<a href="#" class="main-theme-link">Learn more</a></div>
' (length=345)
  6 => string '' (length=0)
1
Rarst