与页面上的用户指定值匹配的GET_POST

时间:2016-03-12 作者:JohnP1

在每个页面上,我希望管理员根据帖子类别选择显示哪个案例历史帖子摘要。

我下面的代码可以工作,但如果你有很多类别,它会非常笨拙。

如何将其更改为“如果第页上指定的案例历史代码=文章类别,则显示文章”?

(我使用的是高级自定义字段,可以使用分类法而不是类别,但它们的分类法示例仅显示了如何显示location=Melbourne的帖子。)

if (get_field(\'case-history-code\') == \'CS1\') {

    $myposts = get_posts(\'numberposts=3&offset=0&category_name=cs1\');
    foreach ($myposts as $post) :
        setup_postdata($post);
        ?>
          <a  href="<?php the_permalink(); ?>">&nbsp;</a> <?php the_excerpt(); ?><br />
          <a href="<?php echo get_permalink(); ?>"> Read More...</a><br />
    <?php
    endforeach;
    wp_reset_query();
} else if (get_field(\'case-history-code\') == \'CS2\') {

    $myposts = get_posts(\'numberposts=3&offset=0&category_name=cs2\');
    foreach ($myposts as $post) :
        setup_postdata($post);
        ?>
          <a  href="<?php the_permalink(); ?>">&nbsp;</a> <?php the_excerpt(); ?><br />
          <a href="<?php echo get_permalink(); ?>"> Read More...</a><br />
    <?php
    endforeach;
    wp_reset_query();
}

1 个回复
SO网友:frogg3862

使用变量可以减少代码的重复性:

$case_history_code = get_field( \'case-history-code\' );
if ( $case_history_code ) {
    // make the code lowercase
    $case_history_code_lower = strtolower( $case_history_code );

    // use the lowercase inside of `get_posts`
    $myposts = get_posts( \'numberposts=3&offset=0&category_name=\' . $case_history_code_lower );
    foreach ($myposts as $post) :
        setup_postdata($post);
        ?>
        <a  href="<?php the_permalink(); ?>">&nbsp;</a> <?php the_excerpt(); ?><br />
        <a href="<?php echo get_permalink(); ?>"> Read More...</a><br />
        <?php
    endforeach;
    wp_reset_query();
}