IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Création shortcode Wordpress


Sujet :

WordPress PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 28
    Par défaut Création shortcode Wordpress
    Hello,
    Je me suis aventuré dans la création d'un shortcode sous wordpress, qui récupère le flux d'un autre site pour l'afficher sur le mien.
    Voici ce que je voudrais faire.
    Appel du shortcode :

    [fluxrss urlflux="http://genius2martigues.ingenie.fr/plugins/rss.php?org=155&id=1&langue=FR"]
    Contenu du flux
    [/fluxrss]

    Si dessous, voici mon code, cela à l'air de fonctionner, mais j'ai seulement "pas d'article pour le moment" qui s'affiche. Avez vous une idée ? merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    //----------------------------- FLUX RSS ---------------------------------------//
    function theme_fluxrss_shortcode( $atts, $content = null ) {
     
    	extract( shortcode_atts( array(
    	    "urlflux" => '',
    	), $atts));
     
    	include_once(ABSPATH . WPINC . '/feed.php');
    $rss = fetch_feed('' . $urlflux . '');
    if (!is_wp_error( $rss ) ) : 
        $maxitems = $rss->get_item_quantity(10); 
        $rss_items = $rss->get_items(0, $maxitems); 
    endif;	
     
    	if ($maxitems == 0) echo '<li>Pas d article pour le moment.</li>';
        else
        foreach ( $rss_items as $item ) :
     
    		    $output .= '<ul id="flux-rss-cool">';
    			$output .= '<li>';
    		    $output .= '<div class="flux-rss">';
    			$output .= '<ul class="list">';
    		    $output .= '<li><h4><a target="_blank" href="">' . $item->get_title() . '</a></h4>';
    			$output .= '</li></ul>';
    			$output .= '</div>';
    			$output .= '</li> ';
    			$output .= '</ul>';
    			$output .= '<div class="cb"></div>';
     
    	endforeach;
     
    	return $output;
     
    }
     
    add_shortcode( 'fluxrss', 'theme_fluxrss_shortcode' );

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rss = fetch_feed('' . $urlflux . '');
    Fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var_dump($rss);
    var_dump($rss->get_error_message());
    exit;
    Et poste le résultat ici.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 28
    Par défaut
    Voila le résultat :
    object(WP_Error)#2140 (2) { ["errors"]=> array(1) { ["simplepie-error"]=> array(1) { [0]=> string(172) "The data could not be converted to UTF-8. You MUST have either the iconv or mbstring extension installed. Upgrading to PHP 5.x (which includes iconv) is highly recommended." } } ["error_data"]=> array(0) { } } string(172) "The data could not be converted to UTF-8. You MUST have either the iconv or mbstring extension installed. Upgrading to PHP 5.x (which includes iconv) is highly recommended."
    Pour info, je suis en local et j'utilise Mamp sur Mac.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Tu as l'explication dans le message d'erreur: il faut installer une extension qui prenne en charge l'utf-8: iconv ou mbstring.

    Teste ceci dans un fichier sur ton serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var_dump(extension_loaded('mbstring'));
    var_dump(extension_loaded('iconv'));
    Si les deux donnent false, il faudra installer l'une d'entre elles.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 28
    Par défaut
    J'ai mis votre code, au même emplacement que plus haut dans le message, et ca m'affiche ca :

    bool(true) bool(true)

    Pour info, j'ai remplacé la variable $urlflux, par le vrai contenu, soit un lien vers un flux rss. Et cela s'affiche bien en front. Il y a donc une erreur sur l'appel de la variable ou quelque chose comme cela non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    function theme_fluxrss_shortcode( $atts, $content = null ) {
     
    	extract( shortcode_atts( array(
    	    "urlflux" => '',
    	), $atts));
     
    	include_once(ABSPATH . WPINC . '/feed.php');
    $rss = fetch_feed('http://genius2martigues.ingenie.fr/plugins/rss.php?org=155&id=1&langue=FR');
    if (!is_wp_error( $rss ) ) : 
        $maxitems = $rss->get_item_quantity(10); 
        $rss_items = $rss->get_items(0, $maxitems); 
    endif;	
     
    	if ($maxitems == 0) echo '<li>Pas d article pour le moment.</li>';
        else
        foreach ( $rss_items as $item ) :
     
    		    $output .= '<ul id="flux-rss-cool">';
    			$output .= '<li>';
    		    $output .= '<div class="flux-rss">';
    			$output .= '<ul class="list">';
    		    $output .= '<li><h4><a target="_blank" href="">' . $item->get_title() . '</a></h4>';
    			$output .= '</li></ul>';
    			$output .= '</div>';
    			$output .= '</li> ';
    			$output .= '</ul>';
    			$output .= '<div class="cb"></div>';
     
    	endforeach;
     
    	return $output;
     
     
     
    }
     
    add_shortcode( 'fluxrss', 'theme_fluxrss_shortcode' );

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 28
    Par défaut
    J'ai changé l'adresse du flux par un autre plus simple http//www.exemple.com/feed, et cela fonctionne. Cela vient donc de l'url du flux, qui intègre des caractères spécifiques.
    Mais comment résoudre le prb ? Il existe pas une fonction a appliquer devant ma variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rss = fetch_feed(''.$urlflux.'');
    qui permet d'autoriser ce type d'url ?

  7. #7
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut shortcode avec Google map
    Bonjour,
    Premierement, je ne comprend pas la variable optionnel passer en parametre:
    $content=null
    A quoi sert-elle ?
    Le short code en lui meme fonctionne, mais pas pour la carte ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function xa_map_it($atts, $content=null){
    	$addr = '30 Canterbury ST, Austin, US';
    	shortcode_atts( array('title' => 'Your map', 'adress' => ''), $atts);
    	$base_map_url = "http://maps.googleapis.com/maps/api/staticmap?center=Berkeley,CA&zoom=14&size=400x400&sensor=false";
    	return 
    	 '<h2>'.$atts['title'].'</h2>
    	 <img alt="no image no image no image no image " 
    	scr="'. $base_map_url.urlencode($atts['adress']) .'">';
     
    }
    Merci

Discussions similaires

  1. Création d'un sous-forum WordPress
    Par Community Management dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/09/2013, 10h20
  2. Création d'un sous-forum WordPress
    Par Bovino dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 02/02/2011, 19h36
  3. Création d'un sous-forum WordPress
    Par Bovino dans le forum Débuter
    Réponses: 0
    Dernier message: 02/02/2011, 19h36
  4. Création d'un sous-forum WordPress
    Par Bovino dans le forum Langage
    Réponses: 0
    Dernier message: 02/02/2011, 19h36
  5. [Aide création thème basique
    Par noobyyy dans le forum WordPress
    Réponses: 2
    Dernier message: 11/01/2011, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo