• Blog
    • Electronique
      • Arduino
      • POV
      • Raspberry PI
    • Divers
      • Gadget
      • Geekeries
      • SteamPunk
    • Do It Yourself
    • High Tech
      • IHM
      • Innovation
      • Réalité Augmenté
    • Imprimante 3D
    • Informatique
      • Hardware
      • Internet
      • Multimedia
      • Software
    • Robotique
    • Test et expertise
  • Boutique
    • Cartes Arduino
    • Raspberry PI
    • Cartes de développement
    • Capteurs
- Annonce -
  • Blog
    • Electronique
      • Arduino
      • POV
      • Raspberry PI
    • Divers
      • Gadget
      • Geekeries
      • SteamPunk
    • Do It Yourself
    • High Tech
      • IHM
      • Innovation
      • Réalité Augmenté
    • Imprimante 3D
    • Informatique
      • Hardware
      • Internet
      • Multimedia
      • Software
    • Robotique
    • Test et expertise
  • Boutique
    • Cartes Arduino
    • Raspberry PI
    • Cartes de développement
    • Capteurs
Accueil » Divers Informatique Internet Wordpress

WordPress : Générer des « images à une » à partir de l’URL d’un fichier image

Semageek Publié le 18 juin 2012
5
3.6K Vues


  • Partagez sur Facebook
  • Twittez

Depuis l’arrivée de la fonction « Image à la une » dans WordPress, je me suis retrouvé avec un dilemme car j’utilisais depuis longtemps une fonction équivalente, codé à la hache par mes soins, qui récupérait l’url d’une image contenue dans un champ personnalisé. Il me fallait donc trouver une solution efficace pour migrer cela facilement et rapidement.

Set_the_post_thumbnail

Il n’existe pas une fonction permettant de réaliser l’ajout d’un thumnbail dans un post facilement du type « set_the_post_thumbnail() » pourtant, la fonction « get_the_post_thumbnail() » existe bel et bien.

En allant voir le Codex du codex wordpress pour analyser cette dernière, on peut trouver sa source dans « wp-includes/post-thumbnail-template.php »

On peut voir que la fonction ne fait que nous retourner le contenu d’un champ personnalisé nommé « _thumbnail_id« .

Donc, si l’on souhaite affecter une « Image à la une » à un article, il suffit simplement de rajouter un champ personnalisé contenant l’ID de l’image et se nommant « _thumbnail_id« , voilà déjà 50% de ma solution.

Nous créons donc la fonction set_the_post_thumbnail suivante dans notre fichier fonctions.php

set_the_post_thumbnail($post_id, $image_id){

add_post_meta($post_id,'_thumbnail_id', $image_id, true);

}

get_attachment_id_from_src

Comme, je vous l’ai indiqué, je stockais l’url de mon image à mettre en avant dans un champ personnalisé et maintenant, j’ai besoin de disposer de l’ID de l’image. Il va donc me falloir trouver un moyen d’extraire l’ID d’une image à partir de son url.

Comme je suis assez faignant dans l’âme, j’ai trouvé le bout de code qui fait mon bonheur sur core.trac.wordpress.org.

Ce code va donc me permettre de trouver l’ID d’une image source très simplement.

function get_attachment_id_from_src ($image_src) {

global $wpdb;

$query = "SELECT ID FROM {$wpdb->posts} WHERE guid='$image_src'";

$id = $wpdb->get_var($query);

return $id;

}

sgk_get_image

sgk_get_image est le nom de la fonction qui me permettait avant de récupérer l’url d’une miniature en fonction de l’ID d’un post, il va simplement falloir la modifier pour générer au fil du temps les « Images à la une » automatiquement. L’URL de l’image était contenu dans le champ personnalisé ‘screen’, il vous suffira d’adapter ce champ pour l’adapter à votre besoin.

function sgk_get_image($post_id){

	//on verifie que le thumb n'existe pas déjà	
	$image_thumb=get_post_meta($post_id, '_thumbnail_id', true);
	if ($image_thumb=='') {
		//On verifie si un champ perso existe
		$image_post=get_post_meta($post_id, 'screen', true);		
		if ($image_post=='') {
			//on affecte une image par defaut
			$image_post="http://www.semageek.com/blank.jpg";		
			return $image_post;
		}
		else	
		{
			//on génére le thumb
			sgk_generate_thumb_post($post_id,$image_post) ;
			return $image_post;
		}
	}
	$image_url=wp_get_attachment_image_src(get_post_thumbnail_id(),'large');
	return ($image_url[0]);
}

Dans l’exemple ci-dessus, j’utilise la variable ‘large’ pour définir la taille de cette image, mais je vous conseille de lire cet article Gérer plusieurs tailles d ’images personnalisées sur WordPress, il va vous permettre d’affecter plusieurs tailles facilement à vos miniatures pour une meilleure intégration.
That’s All Folks !

Vues : 3 556
  • Partagez sur Facebook
  • Twittez


- Annonce -
_thumbnail_idchampcodegénérerimageImage à la unemetapersonnalisépostthumnbailuRLWordpress


Auteur

Semageek

La trentaine et passionné par l’électronique et l’informatique. Le DIY et l'univers geek est une vocation que j’ai depuis tout petit, bercé entre les StarWars et les Mac Gyver. J’ai toujours eut une passion très forte pour l’informatique, depuis l’âge de 7 ans où j’ai eu mon premier ordinateur, un Tandy TRS-80 pour les connaisseurs. Et depuis, je suis assez autodidacte et je me forme à l’aide d’internet dans les divers langage de programmation. Actuellement je souhaite prendre un tournant dans ma vie et essayer de travailler à 100% à mon compte sur le web, alors j’essaie de lancer des sites, des idées des concepts dont Semageek fait partie.

Vous aimerez aussi
DIY : Transférer les données d’accès WiFi à un ESP8266 en LiFi
14 juin 2018
DIY : Un système d’alarme à base d’Arduino simple à réaliser
18 janvier 2017
Roboartist : Le robot qui dessine comme un artiste
29 avril 2014
Video : Introduction à l'Arduino
A lire en suivant

Video : Introduction à l'Arduino

  • - Annonce -
  • Articles Populaires

    • 1
      Fabriquer un brouilleur de téléphone mobile.
    • 2
      Les 42 commandes les plus utiles sur Raspberry PI
    • 3
      DIY : Une machine CNC de gravure laser fabriquée avec une diode laser de graveur DVD

  • SEMAGEEK : Actualités High Tech, Robot, Électronique, DIY et Arduino.

    Mentions Légales

    Annonceurs

    À propos

    Contact

  • Articles Récents

    • STAR : Un robot modulable à base d'arduino qui se faufile partout
    • DIY : Fabriquer un robot mangeur de pièces avec une boite de Pringles et un arduino
    • Un robot imprimé en 3D qui dessine dans le sable.
  • Articles Populaires

    • 1
      Fabriquer un brouilleur de téléphone mobile.
    • 2
      Les 42 commandes les plus utiles sur Raspberry PI
    • 3
      DIY : Une machine CNC de gravure laser fabriquée avec une diode laser de graveur DVD

© Copyright Semageek® 2009 - 2020
Appuyez sur Entrée pour lancer votre recherche
Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considérerons que vous acceptez l'utilisation des cookies.Ok