web-dev-qa-db-fra.com

Utiliser esc_url avec une URL codée en dur

J'ai ajouté l'URL suivante dans mon thème, mais on m'a informé que je dois utiliser esc_url(). Je ne pouvais pas comprendre, comment puis-je utiliser cette fonction avec le code suivant?

<a href="http://pinterest.com/pin/create/button/?url=<?php echo urlencode( get_the_permalink() ); ?>&amp;media=<?php echo urlencode($thumbnail); ?>&amp;description=<?php echo urlencode( get_the_title() ); ?>" target="_blank">Pinterest</a> 
1
kashan

Je vous pense que vous en avez besoin. Par exemple, vous utilisez le titre dans une URL et vous obtenez le titre de manière dinamique; de sorte que vous ne savez jamais exactement si le titre est valide pour être utilisé dans une URL ou non. Donc, il vaut mieux l'utiliser.

Juste un exemple: il est très courant que les titres contiennent des espaces et des espaces doivent être encapsulés pour être utilisés dans les URL .

Je construirais d'abord la chaîne d'URL complète, puis j'utiliserais esc_url() au moment où il est utilisé pour une valeur d'attribut.

$url_params = array(
    'url'         => get_the_permalink(),
    'media'       => $thumbnail,
    'description' => get_the_title()
);

$url = "http://pinterest.com/pin/create/button/?" . http_build_query( $url_params );

echo '<a href="' . esc_url( $url ) . '">Pinterest</a>';
1
cybmeta