web-dev-qa-db-fra.com

Comment puis-je générer des nombres aléatoires dans mes codes courts à chaque implémentation?

Je fais des shortcodes avec la classe aléatoire comme celle-ci

Le générateur alphnumérique aléatoire:

function getRandomCode(){
    $alphanumeric = "0123456789abcdefghijklmnopqrstuvwxyz";
    $su = strlen($alphanumeric) - 1;
    // echo '<br/>';
    // // echo Rand(0, $su);
    // // echo '<br/>';
    // // echo substr($alphanumeric, Rand(0, $su), 3);
    // // echo '<br/>';
    echo substr($alphanumeric, Rand(0, $su), 3) .
            substr($alphanumeric, Rand(0, $su), 2).
            substr($alphanumeric, Rand(0, $su), 1).
            substr($alphanumeric, Rand(0, $su), 1);
}


function heading( $atts, $content = null ) {
    // [my_heading][/my_heading]
    $atts = shortcode_atts( array(), $atts, 'my_heading' );

    // do shortcode actions here
    $output = "<h1 class=\"my-theme-element-". getRandomCode() ." banner-heading test-class-1\">".$content."</h1>";
    return $output;
}
add_shortcode( 'my_heading','heading' );

La classe aléatoire est my-theme-element-".getRandomCode()."

The Problem:

Le problème est qu'il ne génère pas la classe comme prévu signifie qu'il la génère au-dessus de la page, pas dans la balise h1. Comment puis-je résoudre ce problème?

1
Owaiz Yusufi

Selon le commentaire de @Mark Kaplun:

Faites votre valeur de retour getRandomCode() au lieu de echo comme ceci

function getRandomCode(){
    $alphanumeric = "0123456789abcdefghijklmnopqrstuvwxyz";
    $su = strlen($alphanumeric) - 1;
    // echo '<br/>';
    // // echo Rand(0, $su);
    // // echo '<br/>';
    // // echo substr($alphanumeric, Rand(0, $su), 3);
    // // echo '<br/>';
    return substr($alphanumeric, Rand(0, $su), 3) .
            substr($alphanumeric, Rand(0, $su), 2).
            substr($alphanumeric, Rand(0, $su), 1).
            substr($alphanumeric, Rand(0, $su), 1);
}

et rappelez-vous ne modifiez pas votre rappel de shortcode

3
user7791702