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?
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