Image : chemin relatif et absolue (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 15)
  • Auteur
    Messages
  • #493995
    Pegase88
    Membre
    Initié WordPress
    25 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.1.1
    – Version de PHP/MySQL : 5.3.6/5.5.10
    – Thème utilisé : Mon Thème
    – Nom de l’hebergeur : Local

    Problème(s) rencontré(s) :

    Je suis en train de crée mon propre thème. Dans mon fichier « style.css »
    j’ai mis le code suivant :

    background-image:url(‘images/pattern.jpg’);

    Les liens en relatif fonctionne.

    Par contre dans les pages PHP je suis obligé de mettre les liens vers les images en absolue:

    <img src="wp-content/themes/mon_theme/images/toto.png"/>

    Y a t’il un moyen de mettre le chemin des images en relatif.

    #765827
    wasicu
    Membre
    Maître WordPress
    2752 contributions

    Resalut Pegase.
    Au passage c’est relatif dans les deux cas.
    Ma réponse ne va pas te plaire parce que ça ne va pas raccourcir l’écriture. Tu peux utiliser aussi la fonction bloginfo ()

    <img src="/images/toto.png » />

    Pas bien avancé.
    L’avantage de bloginfo ? Changement de thème, de nom de site, de répertoire wordpress… Par contre il faudra toujours avoir un répertoire images et un fichier toto.png dans ton thème.
    Le codex ici pour avoir les paramètres.

    #765828
    Pegase88
    Membre
    Initié WordPress
    25 contributions
    wasicu wrote:
    Pas bien avancé.
    L’avantage de bloginfo ? Changement de thème, de nom de site, de répertoire wordpress… Par contre il faudra toujours avoir un répertoire images et un fichier toto.png dans ton thème.
    Le codex ici pour avoir les paramètres.

    Si si, tu as résolus mon problème. C’était justement par rapport aux changement du nom du dossier du thème que je cherchais une solution.
    Merci pour la réponse, sa m’arrange parfaitement. :rolleyes:

    #765829
    Pegase88
    Membre
    Initié WordPress
    25 contributions

    Juste un tout petit problème. Je n’arrive pas à concaténer la fonction dans une autre fonction :

    edit_post_link(‘<img alt="edit" />‘, ‘ | ‘,  »);

    Argg sa ne marche pas :(

    #765830
    wasicu
    Membre
    Maître WordPress
    2752 contributions

    Hehehehe. T’as oublié que c’est une fonction php la bloginfo.

    Et puis en php, il est possible que  » et ‘ ne soient pas interprétés de la même manière dans une fonction. Je ne suis pas un expert, loin de là. Donc revoir bloginfo(«  »)
    Mais c’est bien, j’ai du respect pour ton acharnement. Tu sais ce que tu veux.
    Ne pas oublier non plus le ; après les fonctions.
    Bon courage.

    #765831
    anthony_synapse
    Participant
    Chevalier WordPress
    258 contributions

    dans ce contexte, ‘ et  » sont pareils, cependant ils ne sont aussi performants.

    pour info, wp-content/themes/mon_theme/images/toto.png est un chemin relatif, un chemin absolu ressemblerais à ça : http://www.tonsite.com/wp-content/themes/mon_theme/images/toto.png

    #765832
    wasicu
    Membre
    Maître WordPress
    2752 contributions

    Merci anthony.

    #765833
    anthony_synapse
    Participant
    Chevalier WordPress
    258 contributions

    si jamais tu veux en savoir plus à ce sujet, tu peux faire un tour ici : http://m-fernandez.developpez.com/articles/php/bench/#LII

    🙂

    #765834
    wasicu
    Membre
    Maître WordPress
    2752 contributions

    Yep. Génial surtout l’article détaillé fournit en lien. Ca fait une grosse différence s’il y a des variables. Merci.

    #765836
    Pegase88
    Membre
    Initié WordPress
    25 contributions

    Bon j’ai trouvé une solution à mon problème.

    La solution simple quant on a juste un balise img

    <img src="/images/comment.png » alt= »commentaires » />

    La sa ce complique car cet une balise img dans une fonction. J’utilise donc cette méthode:

    <?php $image = '<img src="wp-content/themes/'.$nom_dossier_theme.'/images/edit.png" alt="edit" />‘;?>	

    La variable $nom_dossier_theme fait appel au préalable à une fonction:

    $nom_dossier_theme = nom_dossier_theme();

    Fonction ayant pour but de récupérer le nom du dossier de mon thème perso:

    function nom_dossier_theme(){
    $dir = array_reverse(explode(‘\’, dirname(__FILE__)));
    return $dir[0];
    }

    Et voila le tour est joué. Si vous avez trouvé plus simple, faites moi en part.

    #765835
    BertrandB21
    Membre
    Maître WordPress
    590 contributions

    on peut déjà gagner un peu

    <?php $image = '<img src="wp-content/themes/' . nom_dossier_theme() . '/images/edit.png" alt="edit" />‘;

    sinon pour vous amusez
    cherchez ce que fait

    $nom_dossier_theme = nom_dossier_theme;
    echo « mon répertoire est {$nom_dossier_theme()} »;

    ça s’appelle la syntaxe complexe et couplé avec les Heredoc ça permet d’écrire diférement(tm) les pages html intégrant du php. Et ce de manière beaucoup plus lisible …

    #765837
    Li-An
    Participant
    Maître WordPress
    28988 contributions

    J’ai cru lire qu’il valait mieux un chemin en dur dans les thèmes pour éviter les requêtes inutiles (enfin pour un thème personnalisé).

    #765838
    BertrandB21
    Membre
    Maître WordPress
    590 contributions

    je n’ai pas regader dans le Codex mais je suis sur qu’il y a une variable positionné pour le chemin du thème. Si c’est le cas comme je crois le payload n’est pas énorme pour l’indirection mis en place.
    et bon sang qu’est ce que l’on peut gagner detemps humain en dépensant un peu de temps machine

    #765839
    dex
    Participant
    Padawan WordPress
    85 contributions

    Bonjour à tous,

    Effectivement a résolu le même problème chez moi.

    Cependant il m’a semblé voir qq part qu’indiquer clairement le nom du template dans le code source était dangereux (ça donne des indices aux hackeurs) d’où l’intéret de faire images/image.jpg
    Qu’en pensez vous ?
    Merci.

    #765840
    BertrandB21
    Membre
    Maître WordPress
    590 contributions

    Que rien n’impose de respecter le nom du répertoire du thème (hormis pour les maj automatique)
    et je ne suis pas certain que le thème soit une « faille » particulière. Où alors il faut qu’il soit vachement mal fichu.
    Je n’en dirais pas autant des plugins.

15 sujets de 1 à 15 (sur un total de 15)
  • Vous devez être connecté pour répondre à ce sujet.