2014-04-22 110 views
0

我想任何想法。WordPress的自定义字段 - 功能

这是我一直在循环

<?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> 

我身边有5环和相同的代码不断重复一个又一个的内部。

有没有办法缩短这个(也许把它包装在一个函数中)并以这种方式使用它?

+0

与switch语句试过吗? http://www.w3schools.com/php/php_switch.asp – Erevald

回答

0

你可以使用一个switch虽然只有三个选择不保存任何你代码:

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

就代码质量而言,如果您在一个单独的文件中看到它在3个不同的循环中重复出现,您不会说它对我上面写的选项不利? –

+0

这样做确实比我更容易阅读,但并没有那么糟糕。 – brs14ku

0

您应该考虑使用WordPress邮寄格式:

它实现了在岗位管理这个界面面积:

Post Formats

另外几个函数知道什么样的岗位是: has_post_format('[type]')

所以,你可以在你创建一个函数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;'; 
} 

甚至

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