SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
WORDPRESS

        L’utilisation de l’existant dans
18       le développement WordPress
janv.



           WordCamp Paris 2013
REMI CORSON
                     Développeur WordPress




                                @remicorson



                                remicorson.com

       Rémi Corson




WORDPRESS              L’utilisation de l’existant
CE QUE L’ON VA VOIR
  Les tables SQL           Les fonctions indispensables

  Les options par défaut   Les nonces

  Les Custom Post Types    Les fonctions méconnues

  Les requêtes WP_Query




WORDPRESS                  L’utilisation de l’existant
POURQUOI ?

             Pour...

               Gagner du temps

               Sécuriser vos codes

               Rendre compatible

               Produire du code
               pérenne

               et...


WORDPRESS     L’utilisation de l’existant
NE PAS RÉINVENTER LA ROUE
                                     DRY (Don’t Repeat Yourself)




Avant de développer, vérifiez toujours qu’une solution déjà existante ne soit à
votre portée.


WORDPRESS                                  L’utilisation de l’existant
CHAPITRE 1
LES TABLES SQL
LES TABLES SQL




            WordPress se compose de 11 tables SQL




WORDPRESS           L’utilisation de l’existant
LES TABLES SQL



  wp_commentmeta    wp_comments                  wp_links


Comment Meta       Comments                   Links
Champs Meta liés   Les informations           Les liens (masqués
au commentaires.   de base des                par defaut sous WP
                   commentaires               3.5)




WORDPRESS                       L’utilisation de l’existant
LES TABLES SQL



  wp_options         wp_postmeta                  wp_posts


Options             Post Meta                  Posts
Contient tous les   Contient les meta          Contient les articles,
paramètres fixes     data des                   pages, cpt, menu,
du site             «posts» (post,             media...
                    page, cpt...)



WORDPRESS                        L’utilisation de l’existant
LES TABLES SQL



                       wp_term_relationship                           omy
  wp_terms                                    s          wp_term_taxon



Terms                 Term                            Term Taxonomy
Equivalent des        Relationships                   Contient les
catégories et mots                                    informations des
                      Liens entre posts/
clés pour les posts                                   entrées de wp_terms
                      liens et catégories/
et les liens
                      mots clés


WORDPRESS                               L’utilisation de l’existant
LES TABLES SQL



  wp_usermeta          wp_users


User Meta             Users
Contient toutes les   Contient la liste
informations sur      des utilisateurs
les utilisateurs




WORDPRESS                            L’utilisation de l’existant
LES TABLES SQL
 Avec cette structure vous n’avez pas besoin
 de tables supplémentaires pour 99% de vos
 projets.

  Structure pérenne           Utilisation des classes
                              (wpdb entre autres)
  Bénéficier des fonctions
  existantes                  Utilisation des APIs

  Optimisation des            Connaissance de
  requêtes                    WordPress




WORDPRESS                   L’utilisation de l’existant
CHAPITRE 2
LES OPTIONS
LES OPTIONS PAR DEFAUT
 WordPress possède de nombreux paramètres
 par défaut.

 Ils sont à privilégier.   Cette table
                              existe
                                                      1.5
                            depuis la
   Standardisation           version

   CRUD facilité

   Table wp_options




WORDPRESS                      L’utilisation de l’existant
LES OPTIONS PAR DEFAUT
 Les fonctions de l’API Options:

  add_option()               add_site_option()

  get_option()               get_site_option()

  update_option()            update_site_option()

  delete_option()            delete_site_option()



     Installations Multi-sites


WORDPRESS                   L’utilisation de l’existant
LES OPTIONS PAR DEFAUT
 En pratique:
 // Ajouter une option
 add_option( $option, $value = , $deprecated = , $autoload =
 'yes' );

 // Supprimer une option
 delete_option( $option );

 // Récupérer la valeur d’une option
 get_option( $option, $default = false );

 // Mettre à jour / recréer une option
 update_option( $option, $newvalue );



WORDPRESS                           L’utilisation de l’existant
LES OPTIONS PAR DEFAUT
 Les options incontournables

  blogname                  comment_registration

  blogdescription           date_format / time_format

  home / siteurl            start_of_week

  admin_email               default_role

  users_can_register        gmt_offset


 http://codex.wordpress.org/Option_Reference

WORDPRESS                  L’utilisation de l’existant
LES OPTIONS PAR DEFAUT
 En pratique:
 // Afficher une date
 echo date_i18n( get_option('date_format'), strtotime( $date ) );

 /*
 Affichera par exemple:
 - 18th Jan 2013                  date_i18n() sert à
 - January 18, 2013                la traduction de
                                        la date
 - Vendredi 18 Janv.
 - Vendredi 18 janvier
 - 18/01/2013
 ...
 */



WORDPRESS                           L’utilisation de l’existant
LES OPTIONS PAR DEFAUT
 get_bloginfo() & bloginfo()
 Pour récupérer d’autres types d’options
  version                  template_url

  text_direction           template_directory

  stylesheet_url           rss2_url

  stylesheet_directory     comments_rss2_url



       Provenance: fonctions de WordPress


WORDPRESS                 L’utilisation de l’existant
LES OPTIONS PAR DEFAUT
 Les fonctions des l’API Transients:
 Les options temporaires
   set_transient()            set_site_transient()

   get_transient()            get_site_transient()

   delete_transient()         delete_site_transient()




      Installations Multi-sites


WORDPRESS                    L’utilisation de l’existant
LES OPTIONS PAR DEFAUT
 En pratique:
 // Ajouter une option temporaire
 set_transient( $transient, $value, $expiration );
 set_transient( ‘last_tweet’, $tweet, 60*60*12 );

 // Récupérer la valeur d’une option temporaire
 get_transient( $transient );
 get_transient( ‘last_tweet’ );                         $expiration est
                                                         exprimée en
                                                          secondes
 // Supprimer une option
 delete_transient( $transient );
 delete_transient( ‘last_tweet’ );




WORDPRESS                            L’utilisation de l’existant
CHAPITRE 3
   LES CPT
LES CPT
 Les custom post types sont une manière de
 différencier vos contenus, par exemple:
  Recettes de cuisine        Evitez de différencier des
                             contenus par catégories.
  Sélection de livres
                             Les catégories servent à
  Voitures, Motos...         classer.

  Entreprises, magasins...   Les CPT servent à
                             différencier.


      Stockés dans wp_posts


WORDPRESS                     L’utilisation de l’existant
LES CPT




            Interface classique pour un Custom Post Type




WORDPRESS                 L’utilisation de l’existant
LES CPT
 Les taxonomies: la méthode de classement
 des CPTs
  Recettes de cuisine           > Par difficulté, pays...

  Sélection de livres           > Par genre, auteur...

  Voitures, Motos...            > Par année, carburant...

  Entreprises, magasins...      > Par ville, activité...



                        Equivalent aux catégories


WORDPRESS                        L’utilisation de l’existant
LES CPT




              Interface classique pour une taxonomie




WORDPRESS             L’utilisation de l’existant
LES CPT
 Créer des CPTs et des Taxonomies

   Générateur en ligne        > Themergency
                              http://themergency.com/generators/wordpress-custom-post-types/



   Plugins                    > Easy Content Type
                              http://codecanyon.net/item/easy-custom-content-types-for-
                              wordpress/234182
   Intégrés aux thèmes

   Les coder en dur


 http://codex.wordpress.org/Post_Types#Custom_Types




WORDPRESS                       L’utilisation de l’existant
LES CPT




        Exemple avancé de CPTs: ajout de champs utilisateurs




WORDPRESS                     L’utilisation de l’existant
LES CPT




            Le résultat sur la page d’édition des utilisateurs




WORDPRESS                    L’utilisation de l’existant
LES CPT
 En pratique, créer un CPT:
 add_action( 'init', 'create_post_type_car' );
 function create_post_type_car() {
 
   register_post_type( 'car',
 
   
    array(
 
   
    
    'labels' => array(
 
   
    
    
    'name'           => __( 'Cars' ),
 
   
    
    
    'singular_name' => __( 'Car' )
 
   
    
    ),
 
   
    
    'public'      => true,
 
   
    
    'has_archive' => true,
 
   
    
    'rewrite'      => array('slug' => 'cars'),
 
   
    )
 
   );
 }

WORDPRESS                             L’utilisation de l’existant
LES CPT
 En pratique, créer un taxonomie:
 add_action( 'init', 'create_difficulty_taxonomy’ );
 function create_ difficulty_taxonomy() {
 
   register_taxonomy(
 
   
    'difficulty',
 
   
    'recipe', // post, page, cpt...
 
   
    array(
 
   
    
     'hierarchical' => true, // tags or categories like
                'label'   => __( 'Difficulty' ),
 
   
    
     'rewrite' => array( 'slug' => 'difficulty' )
 
   
    
     )
 
   
    )
 
   );
 }


WORDPRESS                            L’utilisation de l’existant
CHAPITRE 4
 LES REQUÊTES
AVEC WP_QUERY
WP_QUERY
 WP_Query est une classe qui génère l’objet
 $wp_query définissant la requête courante




       A                                     B
$wp_query détermine le type de requête

WORDPRESS                  L’utilisation de l’existant
WP_QUERY
La hiérarchie                                               index
des templates




                 Archives                                   Post                                     Page




                              tag              post type             media
           category                                                                      ID                        Slug




                                           SINGLE          POST
                         ID         SLUG                           MIME TYPE
      ID          SLUG                                                         DEFAULT        TEMPLATE   DEFAULT          TEMPLATE




                         QUELLE EST LA REQUÊTE COURANTE ?

WORDPRESS                                                             L’utilisation de l’existant
WP_QUERY

             Mais c’est ça,
              c’est trop
               simple !


WORDPRESS         L’utilisation de l’existant
WP_QUERY
                      A                                      B




                                C




 Etape A                  Etape B                    Etape C
 Limiter par              Limiter par auteur         Sélectionner
 catégorie, ou par        et meta field               uniquement
 taxonomie                                           certains champs



WORDPRESS                               L’utilisation de l’existant
WP_QUERY
 En pratique:
 // La Requête (peut être dans la boucle principale)
 $query = new WP_Query( $args );

 // La boucle                                       Paramètres de
 while ( $query->have_posts() ) :                     la requête
 
   $query->the_post();
 
   echo '<li>' . get_the_title() . '</li>';
 endwhile;

 // Restauration de la requête courante
 wp_reset_query();




WORDPRESS                             L’utilisation de l’existant
WP_QUERY
 Exemple: Requêtes par auteur
 // Par author id (user_id)
 $query = new WP_Query(       'author=1' );
 $query = new WP_Query(       'author=4,5,8,7' );
 $query = new WP_Query(       'author=-12' );
 $query = new WP_Query(       'author=-12,4,5,8,7' );

 // Par author_name (user_nicename)
 $query = new WP_Query( 'author_name=remi' );




WORDPRESS                             L’utilisation de l’existant
WP_QUERY
 Exemple: Requêtes par catégories
 // Par category id
 $query = new WP_Query( 'cat=11',-14 );

 // Par category_name (utiliser le slug)
 $query = new WP_Query( 'category_name=actualites' );

 // Par catégories cumulées avec category_and (ET)
 $query = new WP_Query( array( 'category__and' => array( 18,
 14 ) ) );

 // Par catégories cumulées avec category_in (OU)
 $query = new WP_Query( array( 'category__in' => array( 18,
 14 ) ) );

 // Par catégories cumulées avec category_not_in (OU)
 $query = new WP_Query( array( 'category__in' => ...
WORDPRESS                         L’utilisation de l’existant
WP_QUERY
 Les paramètres de WP_Query:
  Auteurs                        Mise en avant (sticky)

  Catégories                     Champs Personnalisés

  Mots Clé                       Order / Order by

  Taxonomies                     Mise en cache

  Recherche ($_GET[‘s’])         Permission (user role)

  Article / Page                 Choix des champs

  Statuts (publish, draft...)

  Date et Heure

WORDPRESS                       L’utilisation de l’existant
WP_QUERY

                      Tous ces
                     paramètres
                        sont
                     cumulables
 http://codex.wordpress.org/Class_Reference/WP_Query

WORDPRESS                       L’utilisation de l’existant
WP_QUERY VS QUERY_POSTS


    WP_Query crée une nouvelle requête

   query_posts modifie la requête courante




WORDPRESS               L’utilisation de l’existant
CHAPITRE 5
LES FONCTIONS
INDISPENSABLES
LES FONCTIONS
                       INDISPENSABLES
 Récupérer & afficher
  the_title()               get_post_type()

  the_excerpt()             get_post_format()

  the_content()             get_post_class()

  the_date(), the_time()    the_category()

  the_permalink()           the_tags()

  the_post_thumbnail()      comments_number()

  the_ID()                  prev / next_post_link()

  the_author()              get_post_meta()

WORDPRESS                  L’utilisation de l’existant
LES FONCTIONS
                        INDISPENSABLES
 Conditions 1/2
  is_single()            is_category()

  is_singular()          is_admin()

  is_sticky()            is_home(), is_front_page()

  is_attachment()        is_404()

  is_page()              wp_is_mobile()

  is_page_template()     is_date(), is_archive()

  is_preview()           is_paged()

  the_author()           is_plugin_active()

WORDPRESS               L’utilisation de l’existant
LES FONCTIONS
                     INDISPENSABLES
 Conditions 2/2
  is_admin_bar_showing()   La plupart des marqueurs
                           conditionnels retournent
  in_the_loop()            «True» ou «False.

  is_user_logged_in()

  email_exists()

  post_type_exists()

  is_active_widget()

  wp_script_is(),
  wp_style_is()


WORDPRESS                   L’utilisation de l’existant
CHAPITRE 6
 LES NONCES
LES NONCES
  Les Nonces sont utilisés dans les formulaire
 sous WordPress afin de prévenir les erreurs et
                 les attaques




WORDPRESS                L’utilisation de l’existant
LES NONCES
  Chaque formulaire frontend DOIT contenir
         une vérification par nonce




WORDPRESS               L’utilisation de l’existant
LES NONCES
 En pratique: création d’un formulaire
 <!-- Création d’un formulaire -->
 <form id="form_id" method="POST" action="">

 
   <input type="hidden" name="securite_nonce"
 value="<?php echo wp_create_nonce('securite-nonce'); ?
 >"/>

 
   <input type="submit" value="Valider"/>

 </form>




WORDPRESS                       L’utilisation de l’existant
LES NONCES
 En pratique: Traitement du formulaire
 // Fonction de traitement du formulaire
 function traitement_des_donnes() {

 
   if( isset( $_POST['securite_nonce'] ) ) {
 
   
     if( wp_verify_nonce( $_POST['securite_nonce'],
 'securite-nonce' ) ) {
 
   
     
    // Le formulaire est validé et sécurisé
 
   
     } else {
 
   
     
    echo 'Erreur dans le formulaire'; exit; // le
 formulaire est refusé
 
   
     }
 
   }
 }
 add_action('init', 'traitement_des_donnes');

WORDPRESS                             L’utilisation de l’existant
CHAPITRE 7
LES FONCTIONS
    MÉCONNUES
LES FONCTIONS
                         MÉCONNUES
wp_generate_password()
Paramètres:

  $len: longueur du mot de passe
  $special_chars: utiliser ou pas des caractères spéciaux
  $extra_special_chars: utiliser d’autres caractères spéciaux


<?php
  echo 'Nouveau pass: '. wp_generate_password();
?>




 http://codex.wordpress.org/Function_Reference/wp_generate_password

WORDPRESS                             L’utilisation de l’existant
LES FONCTIONS
                         MÉCONNUES
add_query_arg()
Paramètres:

  $param1: nouvelle clé (ou array)
  $param2: valeur de la nouvelle clé
  $old_query_or_uri: l’ancienne requête ($_SERVER[REQUEST_URI])

<?php
  $params = array( ‘action’ => ‘edit’, ‘id’ => ’12’ );
  echo add_query_arg( $params );
  // Affichera par exemple
  // http://monsite.com?page=78&action=edit&id=12
?>


 http://codex.wordpress.org/Function_Reference/add_query_arg

WORDPRESS                             L’utilisation de l’existant
LES FONCTIONS
                         MÉCONNUES
register_post_status()
Paramètres:

  $post_status: nom du nouveau status
  $args:
   $label: description du statut
   $public: utilisation en frontend ?
   $exclude_from_search: ne pas inclure dans la recherche
   $show_in_admin_all_list: afficher pour tout post type
   $show_in_admin_status_list: intégrer à la liste
   $label_count: texte à afficher en haut des tableaux




 http://codex.wordpress.org/Function_Reference/add_query_arg

WORDPRESS                             L’utilisation de l’existant
LES FONCTIONS
                         MÉCONNUES
register_post_status()
function custom_post_status_unread(){

   register_post_status( 'nonlu', array(

    
   'label'             => _x( 'Non lu', 'post' ),

    
   'public'             => true,

    
   'exclude_from_search'       => false,

    
   'show_in_admin_all_list' => true,

    
   'show_in_admin_status_list' => true,

    
   'label_count'          => _n_noop( 'Non lu <span
class="count">(%s)</span>', 'Non lu <span
class="count">(%s)</span>' ),

   ) );
}
add_action( 'init', 'custom_post_status_unread' );

 http://codex.wordpress.org/Function_Reference/register_post_status

WORDPRESS                               L’utilisation de l’existant
LES FONCTIONS
                        MÉCONNUES
add_thickbox()
<?php add_thickbox(); ?>
<a href="#" class="thickbox">Voir le Codex WordPress</a>

<?php add_thickbox(); ?>
<a href="#TB_inline?width=600&height=550&inlineId=my-
content-id" class="thickbox">Voir le contenu</a>
<div id="my-content-id" style="display:none;">
  Ce contenu est affiché dans la lightbox!
</div>




 http://codex.wordpress.org/Function_Reference/add_query_arg

WORDPRESS                             L’utilisation de l’existant
QUESTIONS ?




            ?
WORDPRESS     L’utilisation de l’existant
FIN




                Rendez-vous à 13:00
      avec Gilles Vauvarin pour « Démystifier WordPress Multisite »



WORDPRESS                                L’utilisation de l’existant
MERCI !


@remicorson   remicorson.com

Contenu connexe

En vedette

Demystifier wordpress multisite
Demystifier wordpress multisiteDemystifier wordpress multisite
Demystifier wordpress multisiteGilles Vauvarin
 
Conférence WordPress & E-commerce
Conférence WordPress & E-commerceConférence WordPress & E-commerce
Conférence WordPress & E-commerceFabrice Ducarme
 
Google Shopping et Google Vidéo - SMX Paris 2012
Google Shopping et Google Vidéo - SMX Paris 2012Google Shopping et Google Vidéo - SMX Paris 2012
Google Shopping et Google Vidéo - SMX Paris 2012Daniel Roch - SeoMix
 
Organiser un événement WordPress - WordCamp Paris 2015
Organiser un événement WordPress - WordCamp Paris 2015Organiser un événement WordPress - WordCamp Paris 2015
Organiser un événement WordPress - WordCamp Paris 2015Daniel Roch - SeoMix
 
Les bonnes pratiques du référencement naturel
Les bonnes pratiques du référencement naturelLes bonnes pratiques du référencement naturel
Les bonnes pratiques du référencement naturelDaniel Roch - SeoMix
 
Optimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPressOptimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPressDaniel Roch - SeoMix
 
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016Daniel Roch - SeoMix
 
Tester le niveau d'accessibilité d'un thème WordPress
Tester le niveau d'accessibilité d'un thème WordPressTester le niveau d'accessibilité d'un thème WordPress
Tester le niveau d'accessibilité d'un thème WordPressClaire Bizingre
 
Seo Campus Olivier Andrieu
Seo Campus Olivier AndrieuSeo Campus Olivier Andrieu
Seo Campus Olivier Andrieuguest1c98a4
 
Autoforma 1ºim mariafernandacasadosgarcia
Autoforma 1ºim mariafernandacasadosgarciaAutoforma 1ºim mariafernandacasadosgarcia
Autoforma 1ºim mariafernandacasadosgarciamafercasados
 
Κόμικς που έγιναν ταινίες
Κόμικς που έγιναν ταινίεςΚόμικς που έγιναν ταινίες
Κόμικς που έγιναν ταινίεςIliana Kouvatsou
 
International opportunities for new librarians: With (or without) leaving home
International opportunities for new librarians: With (or without) leaving homeInternational opportunities for new librarians: With (or without) leaving home
International opportunities for new librarians: With (or without) leaving homeblisspix
 
최신작게임『SX797』『СOM』모바일바카라
최신작게임『SX797』『СOM』모바일바카라최신작게임『SX797』『СOM』모바일바카라
최신작게임『SX797』『СOM』모바일바카라hdlkfjgldf
 
Θαλασσες
ΘαλασσεςΘαλασσες
Θαλασσεςpolyzois
 
WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016Boiteaweb
 

En vedette (20)

Demystifier wordpress multisite
Demystifier wordpress multisiteDemystifier wordpress multisite
Demystifier wordpress multisite
 
Conférence WordPress & E-commerce
Conférence WordPress & E-commerceConférence WordPress & E-commerce
Conférence WordPress & E-commerce
 
Google Shopping et Google Vidéo - SMX Paris 2012
Google Shopping et Google Vidéo - SMX Paris 2012Google Shopping et Google Vidéo - SMX Paris 2012
Google Shopping et Google Vidéo - SMX Paris 2012
 
Organiser un événement WordPress - WordCamp Paris 2015
Organiser un événement WordPress - WordCamp Paris 2015Organiser un événement WordPress - WordCamp Paris 2015
Organiser un événement WordPress - WordCamp Paris 2015
 
Les bonnes pratiques du référencement naturel
Les bonnes pratiques du référencement naturelLes bonnes pratiques du référencement naturel
Les bonnes pratiques du référencement naturel
 
Optimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPressOptimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPress
 
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
 
Tester le niveau d'accessibilité d'un thème WordPress
Tester le niveau d'accessibilité d'un thème WordPressTester le niveau d'accessibilité d'un thème WordPress
Tester le niveau d'accessibilité d'un thème WordPress
 
Seo Campus Olivier Andrieu
Seo Campus Olivier AndrieuSeo Campus Olivier Andrieu
Seo Campus Olivier Andrieu
 
Βουλιμία
Βουλιμία Βουλιμία
Βουλιμία
 
Sony walkman
Sony walkmanSony walkman
Sony walkman
 
Autoforma 1ºim mariafernandacasadosgarcia
Autoforma 1ºim mariafernandacasadosgarciaAutoforma 1ºim mariafernandacasadosgarcia
Autoforma 1ºim mariafernandacasadosgarcia
 
Κόμικς που έγιναν ταινίες
Κόμικς που έγιναν ταινίεςΚόμικς που έγιναν ταινίες
Κόμικς που έγιναν ταινίες
 
Lar calc10 ch04_sec3
Lar calc10 ch04_sec3Lar calc10 ch04_sec3
Lar calc10 ch04_sec3
 
International opportunities for new librarians: With (or without) leaving home
International opportunities for new librarians: With (or without) leaving homeInternational opportunities for new librarians: With (or without) leaving home
International opportunities for new librarians: With (or without) leaving home
 
최신작게임『SX797』『СOM』모바일바카라
최신작게임『SX797』『СOM』모바일바카라최신작게임『SX797』『СOM』모바일바카라
최신작게임『SX797』『СOM』모바일바카라
 
Θαλασσες
ΘαλασσεςΘαλασσες
Θαλασσες
 
WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016
 
Fast food
Fast foodFast food
Fast food
 
TEEB and climate by Patrick ten Brink of IEEP at Delta & Climate Conf Rotterd...
TEEB and climate by Patrick ten Brink of IEEP at Delta & Climate Conf Rotterd...TEEB and climate by Patrick ten Brink of IEEP at Delta & Climate Conf Rotterd...
TEEB and climate by Patrick ten Brink of IEEP at Delta & Climate Conf Rotterd...
 

Similaire à Wordcamp Paris 2013

WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMSAurélien Denis
 
Atelier création de plugin WordPress
Atelier création de plugin WordPressAtelier création de plugin WordPress
Atelier création de plugin WordPressWilly Bahuaud
 
WP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPressWP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPressimath
 
Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016Daniel Roch - SeoMix
 
Simple présentation de Wordpress
Simple présentation de WordpressSimple présentation de Wordpress
Simple présentation de WordpressOlympe Tchibozo
 
Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)Nicolas Morin
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentationjulien pauli
 
Bâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressBâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressFrédéric Caron
 
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...Olivier Nourry
 
L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018Maxime Jobin
 
Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015PXNetwork
 
Wordpress pour les entreprises
Wordpress pour les entreprisesWordpress pour les entreprises
Wordpress pour les entreprisesmonsieurpixel
 
Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)Nicolas Morin
 
Optimiser WordPress – Checklist après installation
Optimiser WordPress – Checklist après installationOptimiser WordPress – Checklist après installation
Optimiser WordPress – Checklist après installationFabrice Ducarme
 
DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingRomain Jarraud
 
présentation wordpress
présentation wordpressprésentation wordpress
présentation wordpressmonsieurpixel
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersFrédéric Simonet
 

Similaire à Wordcamp Paris 2013 (20)

WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMS
 
Atelier création de plugin WordPress
Atelier création de plugin WordPressAtelier création de plugin WordPress
Atelier création de plugin WordPress
 
WP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPressWP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPress
 
WordPress et SEO - SEOCampus 2013
WordPress et SEO - SEOCampus 2013WordPress et SEO - SEOCampus 2013
WordPress et SEO - SEOCampus 2013
 
Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016
 
Simple présentation de Wordpress
Simple présentation de WordpressSimple présentation de Wordpress
Simple présentation de Wordpress
 
Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)
 
Fondamentaux des CMS
Fondamentaux des CMSFondamentaux des CMS
Fondamentaux des CMS
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
 
Bâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressBâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpress
 
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
 
L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018
 
Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015
 
Tp1 wp etud
Tp1 wp etudTp1 wp etud
Tp1 wp etud
 
Wordpress pour les entreprises
Wordpress pour les entreprisesWordpress pour les entreprises
Wordpress pour les entreprises
 
Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)
 
Optimiser WordPress – Checklist après installation
Optimiser WordPress – Checklist après installationOptimiser WordPress – Checklist après installation
Optimiser WordPress – Checklist après installation
 
DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - Theming
 
présentation wordpress
présentation wordpressprésentation wordpress
présentation wordpress
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliers
 

Plus de corsonr

Un bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatifUn bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatifcorsonr
 
L'impact écologique d'Internet
L'impact écologique d'InternetL'impact écologique d'Internet
L'impact écologique d'Internetcorsonr
 
Faire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPressFaire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPresscorsonr
 
WooCommerce WP-CLI Basics
WooCommerce WP-CLI BasicsWooCommerce WP-CLI Basics
WooCommerce WP-CLI Basicscorsonr
 
WPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les pluginsWPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les pluginscorsonr
 
Développez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clientsDéveloppez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clientscorsonr
 
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...corsonr
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantescorsonr
 

Plus de corsonr (8)

Un bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatifUn bloc WooTenberg pour un coworking associatif
Un bloc WooTenberg pour un coworking associatif
 
L'impact écologique d'Internet
L'impact écologique d'InternetL'impact écologique d'Internet
L'impact écologique d'Internet
 
Faire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPressFaire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPress
 
WooCommerce WP-CLI Basics
WooCommerce WP-CLI BasicsWooCommerce WP-CLI Basics
WooCommerce WP-CLI Basics
 
WPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les pluginsWPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les plugins
 
Développez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clientsDéveloppez votre business en développant le business de vos clients
Développez votre business en développant le business de vos clients
 
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
WordCamp Paris 2015 - Marketing WooCommerce pour augmenter les ventes - Rémi ...
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
 

Wordcamp Paris 2013

  • 1. WORDPRESS L’utilisation de l’existant dans 18 le développement WordPress janv. WordCamp Paris 2013
  • 2. REMI CORSON Développeur WordPress @remicorson remicorson.com Rémi Corson WORDPRESS L’utilisation de l’existant
  • 3. CE QUE L’ON VA VOIR Les tables SQL Les fonctions indispensables Les options par défaut Les nonces Les Custom Post Types Les fonctions méconnues Les requêtes WP_Query WORDPRESS L’utilisation de l’existant
  • 4. POURQUOI ? Pour... Gagner du temps Sécuriser vos codes Rendre compatible Produire du code pérenne et... WORDPRESS L’utilisation de l’existant
  • 5. NE PAS RÉINVENTER LA ROUE DRY (Don’t Repeat Yourself) Avant de développer, vérifiez toujours qu’une solution déjà existante ne soit à votre portée. WORDPRESS L’utilisation de l’existant
  • 7. LES TABLES SQL WordPress se compose de 11 tables SQL WORDPRESS L’utilisation de l’existant
  • 8. LES TABLES SQL wp_commentmeta wp_comments wp_links Comment Meta Comments Links Champs Meta liés Les informations Les liens (masqués au commentaires. de base des par defaut sous WP commentaires 3.5) WORDPRESS L’utilisation de l’existant
  • 9. LES TABLES SQL wp_options wp_postmeta wp_posts Options Post Meta Posts Contient tous les Contient les meta Contient les articles, paramètres fixes data des pages, cpt, menu, du site «posts» (post, media... page, cpt...) WORDPRESS L’utilisation de l’existant
  • 10. LES TABLES SQL wp_term_relationship omy wp_terms s wp_term_taxon Terms Term Term Taxonomy Equivalent des Relationships Contient les catégories et mots informations des Liens entre posts/ clés pour les posts entrées de wp_terms liens et catégories/ et les liens mots clés WORDPRESS L’utilisation de l’existant
  • 11. LES TABLES SQL wp_usermeta wp_users User Meta Users Contient toutes les Contient la liste informations sur des utilisateurs les utilisateurs WORDPRESS L’utilisation de l’existant
  • 12. LES TABLES SQL Avec cette structure vous n’avez pas besoin de tables supplémentaires pour 99% de vos projets. Structure pérenne Utilisation des classes (wpdb entre autres) Bénéficier des fonctions existantes Utilisation des APIs Optimisation des Connaissance de requêtes WordPress WORDPRESS L’utilisation de l’existant
  • 14. LES OPTIONS PAR DEFAUT WordPress possède de nombreux paramètres par défaut. Ils sont à privilégier. Cette table existe 1.5 depuis la Standardisation version CRUD facilité Table wp_options WORDPRESS L’utilisation de l’existant
  • 15. LES OPTIONS PAR DEFAUT Les fonctions de l’API Options: add_option() add_site_option() get_option() get_site_option() update_option() update_site_option() delete_option() delete_site_option() Installations Multi-sites WORDPRESS L’utilisation de l’existant
  • 16. LES OPTIONS PAR DEFAUT En pratique: // Ajouter une option add_option( $option, $value = , $deprecated = , $autoload = 'yes' ); // Supprimer une option delete_option( $option ); // Récupérer la valeur d’une option get_option( $option, $default = false ); // Mettre à jour / recréer une option update_option( $option, $newvalue ); WORDPRESS L’utilisation de l’existant
  • 17. LES OPTIONS PAR DEFAUT Les options incontournables blogname comment_registration blogdescription date_format / time_format home / siteurl start_of_week admin_email default_role users_can_register gmt_offset http://codex.wordpress.org/Option_Reference WORDPRESS L’utilisation de l’existant
  • 18. LES OPTIONS PAR DEFAUT En pratique: // Afficher une date echo date_i18n( get_option('date_format'), strtotime( $date ) ); /* Affichera par exemple: - 18th Jan 2013 date_i18n() sert à - January 18, 2013 la traduction de la date - Vendredi 18 Janv. - Vendredi 18 janvier - 18/01/2013 ... */ WORDPRESS L’utilisation de l’existant
  • 19. LES OPTIONS PAR DEFAUT get_bloginfo() & bloginfo() Pour récupérer d’autres types d’options version template_url text_direction template_directory stylesheet_url rss2_url stylesheet_directory comments_rss2_url Provenance: fonctions de WordPress WORDPRESS L’utilisation de l’existant
  • 20. LES OPTIONS PAR DEFAUT Les fonctions des l’API Transients: Les options temporaires set_transient() set_site_transient() get_transient() get_site_transient() delete_transient() delete_site_transient() Installations Multi-sites WORDPRESS L’utilisation de l’existant
  • 21. LES OPTIONS PAR DEFAUT En pratique: // Ajouter une option temporaire set_transient( $transient, $value, $expiration ); set_transient( ‘last_tweet’, $tweet, 60*60*12 ); // Récupérer la valeur d’une option temporaire get_transient( $transient ); get_transient( ‘last_tweet’ ); $expiration est exprimée en secondes // Supprimer une option delete_transient( $transient ); delete_transient( ‘last_tweet’ ); WORDPRESS L’utilisation de l’existant
  • 22. CHAPITRE 3 LES CPT
  • 23. LES CPT Les custom post types sont une manière de différencier vos contenus, par exemple: Recettes de cuisine Evitez de différencier des contenus par catégories. Sélection de livres Les catégories servent à Voitures, Motos... classer. Entreprises, magasins... Les CPT servent à différencier. Stockés dans wp_posts WORDPRESS L’utilisation de l’existant
  • 24. LES CPT Interface classique pour un Custom Post Type WORDPRESS L’utilisation de l’existant
  • 25. LES CPT Les taxonomies: la méthode de classement des CPTs Recettes de cuisine > Par difficulté, pays... Sélection de livres > Par genre, auteur... Voitures, Motos... > Par année, carburant... Entreprises, magasins... > Par ville, activité... Equivalent aux catégories WORDPRESS L’utilisation de l’existant
  • 26. LES CPT Interface classique pour une taxonomie WORDPRESS L’utilisation de l’existant
  • 27. LES CPT Créer des CPTs et des Taxonomies Générateur en ligne > Themergency http://themergency.com/generators/wordpress-custom-post-types/ Plugins > Easy Content Type http://codecanyon.net/item/easy-custom-content-types-for- wordpress/234182 Intégrés aux thèmes Les coder en dur http://codex.wordpress.org/Post_Types#Custom_Types WORDPRESS L’utilisation de l’existant
  • 28. LES CPT Exemple avancé de CPTs: ajout de champs utilisateurs WORDPRESS L’utilisation de l’existant
  • 29. LES CPT Le résultat sur la page d’édition des utilisateurs WORDPRESS L’utilisation de l’existant
  • 30. LES CPT En pratique, créer un CPT: add_action( 'init', 'create_post_type_car' ); function create_post_type_car() { register_post_type( 'car', array( 'labels' => array( 'name' => __( 'Cars' ), 'singular_name' => __( 'Car' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'cars'), ) ); } WORDPRESS L’utilisation de l’existant
  • 31. LES CPT En pratique, créer un taxonomie: add_action( 'init', 'create_difficulty_taxonomy’ ); function create_ difficulty_taxonomy() { register_taxonomy( 'difficulty', 'recipe', // post, page, cpt... array( 'hierarchical' => true, // tags or categories like 'label' => __( 'Difficulty' ), 'rewrite' => array( 'slug' => 'difficulty' ) ) ) ); } WORDPRESS L’utilisation de l’existant
  • 32. CHAPITRE 4 LES REQUÊTES AVEC WP_QUERY
  • 33. WP_QUERY WP_Query est une classe qui génère l’objet $wp_query définissant la requête courante A B $wp_query détermine le type de requête WORDPRESS L’utilisation de l’existant
  • 34. WP_QUERY La hiérarchie index des templates Archives Post Page tag post type media category ID Slug SINGLE POST ID SLUG MIME TYPE ID SLUG DEFAULT TEMPLATE DEFAULT TEMPLATE QUELLE EST LA REQUÊTE COURANTE ? WORDPRESS L’utilisation de l’existant
  • 35. WP_QUERY Mais c’est ça, c’est trop simple ! WORDPRESS L’utilisation de l’existant
  • 36. WP_QUERY A B C Etape A Etape B Etape C Limiter par Limiter par auteur Sélectionner catégorie, ou par et meta field uniquement taxonomie certains champs WORDPRESS L’utilisation de l’existant
  • 37. WP_QUERY En pratique: // La Requête (peut être dans la boucle principale) $query = new WP_Query( $args ); // La boucle Paramètres de while ( $query->have_posts() ) : la requête $query->the_post(); echo '<li>' . get_the_title() . '</li>'; endwhile; // Restauration de la requête courante wp_reset_query(); WORDPRESS L’utilisation de l’existant
  • 38. WP_QUERY Exemple: Requêtes par auteur // Par author id (user_id) $query = new WP_Query( 'author=1' ); $query = new WP_Query( 'author=4,5,8,7' ); $query = new WP_Query( 'author=-12' ); $query = new WP_Query( 'author=-12,4,5,8,7' ); // Par author_name (user_nicename) $query = new WP_Query( 'author_name=remi' ); WORDPRESS L’utilisation de l’existant
  • 39. WP_QUERY Exemple: Requêtes par catégories // Par category id $query = new WP_Query( 'cat=11',-14 ); // Par category_name (utiliser le slug) $query = new WP_Query( 'category_name=actualites' ); // Par catégories cumulées avec category_and (ET) $query = new WP_Query( array( 'category__and' => array( 18, 14 ) ) ); // Par catégories cumulées avec category_in (OU) $query = new WP_Query( array( 'category__in' => array( 18, 14 ) ) ); // Par catégories cumulées avec category_not_in (OU) $query = new WP_Query( array( 'category__in' => ... WORDPRESS L’utilisation de l’existant
  • 40. WP_QUERY Les paramètres de WP_Query: Auteurs Mise en avant (sticky) Catégories Champs Personnalisés Mots Clé Order / Order by Taxonomies Mise en cache Recherche ($_GET[‘s’]) Permission (user role) Article / Page Choix des champs Statuts (publish, draft...) Date et Heure WORDPRESS L’utilisation de l’existant
  • 41. WP_QUERY Tous ces paramètres sont cumulables http://codex.wordpress.org/Class_Reference/WP_Query WORDPRESS L’utilisation de l’existant
  • 42. WP_QUERY VS QUERY_POSTS WP_Query crée une nouvelle requête query_posts modifie la requête courante WORDPRESS L’utilisation de l’existant
  • 44. LES FONCTIONS INDISPENSABLES Récupérer & afficher the_title() get_post_type() the_excerpt() get_post_format() the_content() get_post_class() the_date(), the_time() the_category() the_permalink() the_tags() the_post_thumbnail() comments_number() the_ID() prev / next_post_link() the_author() get_post_meta() WORDPRESS L’utilisation de l’existant
  • 45. LES FONCTIONS INDISPENSABLES Conditions 1/2 is_single() is_category() is_singular() is_admin() is_sticky() is_home(), is_front_page() is_attachment() is_404() is_page() wp_is_mobile() is_page_template() is_date(), is_archive() is_preview() is_paged() the_author() is_plugin_active() WORDPRESS L’utilisation de l’existant
  • 46. LES FONCTIONS INDISPENSABLES Conditions 2/2 is_admin_bar_showing() La plupart des marqueurs conditionnels retournent in_the_loop() «True» ou «False. is_user_logged_in() email_exists() post_type_exists() is_active_widget() wp_script_is(), wp_style_is() WORDPRESS L’utilisation de l’existant
  • 47. CHAPITRE 6 LES NONCES
  • 48. LES NONCES Les Nonces sont utilisés dans les formulaire sous WordPress afin de prévenir les erreurs et les attaques WORDPRESS L’utilisation de l’existant
  • 49. LES NONCES Chaque formulaire frontend DOIT contenir une vérification par nonce WORDPRESS L’utilisation de l’existant
  • 50. LES NONCES En pratique: création d’un formulaire <!-- Création d’un formulaire --> <form id="form_id" method="POST" action=""> <input type="hidden" name="securite_nonce" value="<?php echo wp_create_nonce('securite-nonce'); ? >"/> <input type="submit" value="Valider"/> </form> WORDPRESS L’utilisation de l’existant
  • 51. LES NONCES En pratique: Traitement du formulaire // Fonction de traitement du formulaire function traitement_des_donnes() { if( isset( $_POST['securite_nonce'] ) ) { if( wp_verify_nonce( $_POST['securite_nonce'], 'securite-nonce' ) ) { // Le formulaire est validé et sécurisé } else { echo 'Erreur dans le formulaire'; exit; // le formulaire est refusé } } } add_action('init', 'traitement_des_donnes'); WORDPRESS L’utilisation de l’existant
  • 53. LES FONCTIONS MÉCONNUES wp_generate_password() Paramètres: $len: longueur du mot de passe $special_chars: utiliser ou pas des caractères spéciaux $extra_special_chars: utiliser d’autres caractères spéciaux <?php   echo 'Nouveau pass: '. wp_generate_password(); ?> http://codex.wordpress.org/Function_Reference/wp_generate_password WORDPRESS L’utilisation de l’existant
  • 54. LES FONCTIONS MÉCONNUES add_query_arg() Paramètres: $param1: nouvelle clé (ou array) $param2: valeur de la nouvelle clé $old_query_or_uri: l’ancienne requête ($_SERVER[REQUEST_URI]) <?php   $params = array( ‘action’ => ‘edit’, ‘id’ => ’12’ ); echo add_query_arg( $params ); // Affichera par exemple // http://monsite.com?page=78&action=edit&id=12 ?> http://codex.wordpress.org/Function_Reference/add_query_arg WORDPRESS L’utilisation de l’existant
  • 55. LES FONCTIONS MÉCONNUES register_post_status() Paramètres: $post_status: nom du nouveau status $args: $label: description du statut $public: utilisation en frontend ? $exclude_from_search: ne pas inclure dans la recherche $show_in_admin_all_list: afficher pour tout post type $show_in_admin_status_list: intégrer à la liste $label_count: texte à afficher en haut des tableaux http://codex.wordpress.org/Function_Reference/add_query_arg WORDPRESS L’utilisation de l’existant
  • 56. LES FONCTIONS MÉCONNUES register_post_status() function custom_post_status_unread(){ register_post_status( 'nonlu', array( 'label' => _x( 'Non lu', 'post' ), 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Non lu <span class="count">(%s)</span>', 'Non lu <span class="count">(%s)</span>' ), ) ); } add_action( 'init', 'custom_post_status_unread' ); http://codex.wordpress.org/Function_Reference/register_post_status WORDPRESS L’utilisation de l’existant
  • 57. LES FONCTIONS MÉCONNUES add_thickbox() <?php add_thickbox(); ?> <a href="#" class="thickbox">Voir le Codex WordPress</a> <?php add_thickbox(); ?> <a href="#TB_inline?width=600&height=550&inlineId=my- content-id" class="thickbox">Voir le contenu</a> <div id="my-content-id" style="display:none;"> Ce contenu est affiché dans la lightbox! </div> http://codex.wordpress.org/Function_Reference/add_query_arg WORDPRESS L’utilisation de l’existant
  • 58. QUESTIONS ? ? WORDPRESS L’utilisation de l’existant
  • 59. FIN Rendez-vous à 13:00 avec Gilles Vauvarin pour « Démystifier WordPress Multisite » WORDPRESS L’utilisation de l’existant
  • 60. MERCI ! @remicorson remicorson.com