WordPress

Unikalny identyfikator krótkich kodów WordPress, jeśli jest używany więcej niż raz na stronie?

  • 6 listopada, 2014
  • 3 min read
Unikalny identyfikator krótkich kodów WordPress, jeśli jest używany więcej niż raz na stronie?


Chciałem rozwinąć odpowiedzi na przykładach dla tych, którzy potrzebują pomocy.

Możliwe powody, dla których tu jesteś:

  • Wiele wystąpień tych samych krótkich kodów z unikalnym identyfikatorem
  • Potrzebujesz tego samego krótkiego kodu, który generuje unikalną klasę przy każdym wywołaniu
  • Ustaw licznik zmienny, aby zliczać użycie krótkiego kodu
  • Jak policzyć, ile razy użyłeś krótkiego kodu na bieżącej stronie
  • Ustaw unikalny numer rosnący dla każdego krótkiego kodu
  • ustaw losową liczbę dla krótkiego kodu atrybutu danych

Użyj zmiennej statycznej, aby zliczyć każde wywołanie krótkiego kodu

Ze zmienną statyczną o wartości int static $count = 1; wywoływane, możemy zwiększać wartość przy każdym wywołaniu krótkiego kodu za pomocą $count++;. Używam tego do dodawania niestandardowych identyfikatorów do wyjściowego kodu HTML krótkiego kodu pokazu slajdów SwiperJS, który pobiera niestandardowe obrazy polecane typu post, których ponownie używam na tej samej stronie. SwiperJS wymaga, aby każdy element miał unikalną klasę. Dzięki temu nowemu, unikalnemu identyfikatorowi JavaScript może inicjować każdy z nich jako unikalny obiekt lub wykorzystać go do celów stylizacyjnych.

Warto przeczytać!  css — Strona miga, gdy ładuje się nowy film HTML5

Przykład 1 PHP

add_shortcode('count_example', 'count_example_shortcode');
function count_example_shortcode( $atts = [], $content = null) {
    
// Options
ob_start();

/**
* Static variable
*/
static $count = 1; // if your prefer to start with zero change to 0

    $atts = shortcode_atts(
        [
            // Shortcode Attribute defaults
            'count' => 'true', 
        ],
        $atts
    );

    
        // You can check if shortcode attribute is set 
        if ($atts['count'] == true) {
           echo '<div id="example-'.$count.'">html stuff</div>';

        // or check the string value of attribute
        } elseif ($atts['count'] == "true") {
           echo '<div id="example-'.$count.'">html stuff</div>';

        // Use this below if no attributes are set
        else {
           echo '<div id="example">html stuff</div>';
        }

/**
* Increment int variable $count for each shortcode call
*/
    $count++;

    return ob_get_clean();

}

Przykład 1 Krótkie kody

[count_example count="foo"]
[count_example count="true"]
[count_example]

Przykład 1 Wyjście

<div id="example-1">html stuff</div>
<div id="example-2">html stuff</div>
<div id="example">html stuff</div>

Przykład wielowarstwowy

Potrzebujesz licznika i potrzebujesz unikalnego identyfikatora, klasy lub atrybutu danych, rozważ użycie uniqueid() Lub random_int().

add_shortcode('count_example', 'count_example_shortcode');
function count_example_shortcode( $atts = [], $content = null) {
    
// Options
ob_start();

/**
* Static Variable Counter, UniqueID, or Random_int
*/
$count = 1;

$prefix = 'example-';
$uniqueID = $uniqid = uniqid($prefix); // 

$random_integer = random_int(100, 999); // 

    // Attributes not used in this example, kept in example for complete structure
    $atts = shortcode_atts(
        [
            'count' => 'true', 
        ],
        $atts
    );
        
        echo '<div class="exammple-'.$count.'" id="'.$uniqueID.'" data-id="'.$random_integer.'">html stuff</div>';

    return ob_get_clean();

}

Przykład 2 Krótkie kody

[count_example]
[count_example]

Przykład 2 Dane wyjściowe

<div class="example-1" id="example-4b3403665fea6" data-id="735">html stuff</div>
<div class="example-2" id="example-4fe424wg4w33f" data-id="924">html stuff</div>


Źródło

Warto przeczytać!  front end - Jak dynamicznie zmieniać niestandardowe zamówienie pocztowe ASC/DESC menu_order?