web-dev-qa-db-fra.com

Poster un lien relatif et modifier HTML

Je souhaite supprimer l'URL du site Web de toutes les the_post_thumbnail() afin qu'elles deviennent relatives et suppriment/ajoutent des attributs à la sortie.

Jusqu'à présent, le code suivant a été ajouté au fichier functions.php du thème. Je ne sais pas comment modifier la vignette $html pour la deuxième partie.

L'aide est appréciée

add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );

function my_post_image_html( $html, $post_id, $post_image_id, $size ) {

    // Create relative url using pars_url in php
    $relURL = wp_get_attachment_url( $post_id ); // Get Post thumbnail Src instead of permalink
    $relURL = parse_url( $relURL );
    $relURL = $relURL['path'];

     //Pass the relURL to post_thumbnail_html modify the src attribute
    $html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . $imgsrc .$post_id . '</a>';

    return $html;
}
2
MonteCristo

C’est une fonction plutôt débile, mais elle fait le travail, elle transformera la vignette de votre message en une URL relative. Vous ne savez pas pourquoi vous feriez cela, utilisez-le avec prudence, souhaitez probablement ajouter une vérification d'erreur.

function wpse_83137_relative( $html, $post_id) {

      // get thumb src
      $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
      $post_thumbnail_id = get_post_thumbnail_id( $post_id );
      $urly = wp_get_attachment_image_src($post_thumbnail_id );

      //parse the url
      $parse_it = $urly[0];
      $parsed_url = parse_url($parse_it, PHP_URL_PATH);

      //add other stuff
      $some_thing = 'something else you want to add';

      //output relative link, add more stuff here if you want for inside html tags
      $img = '<img src="' . $parsed_url . '">';

      return $img . $some_thing;
    }

    add_filter( 'post_thumbnail_html', 'wpse_83137_relative', 10, 3 );
0
Wyck