2014-04-22 3 views
0

J'aimerais beaucoup avoir des idées.Champs personnalisés WordPress - Fonction

C'est ce que je l'intérieur de la boucle

<?php 
    $mediapost = get_post_meta($post->ID, 'mediapost', true); 

    if ($mediapost == 'gallery') { 
     $posticon = '<i class="fa fa-camera-retro"></i>&nbsp;'; 
    } elseif ($mediapost == 'video') { 
     $posticon = '<i class="fa fa-video-camera"></i>&nbsp;'; 
    } else { 
     $posticon = ''; 
    } 
    ?> 

    <?php echo $posticon; ?> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(esc_attr__('Permalink to %s', 'citydesk'), the_title_attribute('echo=0')); ?>" ><?php the_title(); ?></a> 

J'ai environ 5 boucles et même code ne cesse de répéter un après l'autre.

Existe-t-il un moyen de raccourcir cela (peut-être de l'envelopper dans une fonction) et l'utiliser de cette façon?

+0

Essayé avec Switch déclaration? http://www.w3schools.com/php/php_switch.asp – Erevald

Répondre

0

Vous pouvez utiliser un switch mais avec seulement trois options, il ne vous sauve pas de code:

switch(type){ 
    case 'gallery': 
     $posticon = '<i class="fa fa-camera-retro"></i>&nbsp;'; 
     break; 
    case 'video': 
     $posticon = '<i class="fa fa-video-camera"></i>&nbsp;'; 
     break; 
    default: 
     $posticon = ''; 
     break; 
} 
+0

En termes de qualité de code, vous ne diriez pas que c'est mauvais pour l'option que j'ai écrit ci-dessus si vous le voyez répété dans 3 boucles différentes dans un seul fichier ? –

+0

Il est certainement un peu plus facile à lire écrit comme je l'ai fait, mais ce n'est pas vraiment pire. – brs14ku

0

Vous devriez envisager d'utiliser les formats post wordpress:

Il implémente cette interface dans les postes d'administration Superficie:

Post Formats

également quelques fonctions de savoir quel genre de poste est-il: has_post_format('[type]')

Vous pouvez créer une fonction dans votre fichier function.php:

function the_post_icon(){ 
    $format = get_post_format(); 
    switch($format){ 
     case 'gallery': 
      $posticon = 'gallery'; 
      break; 
     case 'video': 
      $posticon = 'video'; 
      break;  
     default: 
      $posticon = ''; 
      break; 
    } 
    echo '<i class="fa fa-'.$posticon.'"></i>&nbsp;'; 
} 

ou même

function the_post_icon(){ 
     echo '<i class="fa fa-'.get_post_format().'"></i>&nbsp;'; 
    } 
Questions connexes