web-dev-qa-db-fra.com

Créer une URL dans un hyperlien de champ personnalisé

Dans mon site WordPress, j'ai créé un champ personnalisé pour le lien du site Web de l'auteur. mais je ne sais pas comment créer un lien hypertexte, afin que les gens puissent cliquer dessus pour surfer sur ce site. à ce moment, il ne montre que le texte brut. comme: "www.example.com"

mon code est:

<?php echo get_post_meta($post->ID, 'Author Website', true); ?>
1
user2802110

Utilisez ceci.

get_post_meta($post->ID, 'custom-field-name', true);

Où custom-field-name est le nom du champ personnalisé. Vous devrez ajouter votre nom de champ personnalisé à la place de nom de champ personnalisé.

Pour ouvrir également le lien dans une nouvelle fenêtre/un nouvel onglet du navigateur, ajoutez target="_blank". Utilisez toujours esc_url() pour les URL et esc_html() lorsque vous souhaitez afficher une valeur sans utiliser HTML.

$value = get_post_meta( $post->ID, 'Author Website', true );

if ( $value ) {
    // Returns an empty string for invalid URLs
    $url = esc_url( 'http://' . $value );

    if ( '' !== $url ) {
        $display = esc_html( $value );

        print "<a href='$url' target='_blank'>$display</a>";
    }
}

Vous devez également stocker le protocole sur le terrain, car certains sites Web pourraient ne pas être disponibles par http, juste par https.

7
Robert hue

Toujours utiliser esc_attr pour échapper aux attributs de valeur de champ HTML

$cf = esc_attr(get_post_meta( get_the_ID(), 'custom_field', true ));
echo '<a href="http://' . str_replace("http://", "", $cf) . '">' . $cf . '</a>';
0
Brad Dalton