在循环到自定义字段名称时过滤搜索结果

时间:2014-10-30 19:08:45

标签: php wordpress

如果我可以根据post_type过滤搜索结果

at:if ($post->post_type == "mobile-experience") { ?>

如何添加另外两个过滤器,这些过滤器将根据自定义字段名称

过滤结果

我试过了:

if ($post->post_meta == "mobile_app") { ?>

但是不起作用。

自定义字段名称为' Mobile App'。

我想在3个自定义字段名称下显示搜索结果;什么都行不通。

<?php
// Start the Loop.
while ( have_posts() ) : the_post();

if ($post->post_type == "mobile-experience") { ?>

        <?php get_template_part( 'search-mobile-experience'); // works
    }

if ($post->post_meta == "mobile_app") { ?> // Doesn't work

        <?php get_template_part( 'new-mobile-app_template');
}
else { ?>

更新:周四下午1:15($#&amp; !!)

非常感谢建议人员;这让我疯了。以下是我目前的情况。但仍然显示我的自定义字段过滤器被忽略。

        <?php
            // Start the Loop.
            while ( have_posts() ) : the_post();

                if ($post->post_type == "mobile-experience") { ?>

                        <?php get_template_part( 'search-mobile-experience');
                    }

            if ( get_post_meta($post->ID, 'mobile_app', true) == "mobile_app") { ?> 

                <?php get_template_part( 'new-mobile-app-template');
                        }
                    else { ?>

                        <p><?php the_date(); ?></p>

                        <?php get_template_part( 'content', get_post_format() );
                    }
            endwhile;

        else :
            // If no content, include the "No posts found" template.
            get_template_part( 'content', 'none' );

        endif;
        ?>

然后我有2个模板:

new-mobile-app-template.php

search-mobile-experience.php

(最终我将有一个用于第三个,或自定义字段过滤器2)

两者都是这样的:

<?php
/**
 * The default template for displaying content. Used for both single and index/archive/search.
 *
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0
 */
?>

    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <?php if ( is_sticky() && is_home() && ! is_paged() ) : ?>
        <div class="featured-post">
            <?php _e( 'Featured post', 'twentytwelve' ); ?>
        </div>
        <?php endif; ?>
        <header class="entry-header">
            <?php the_post_thumbnail(); ?>
            <p>Mobile Website | March 28, 2014 </p>
            <h1 class="entry-title">
                <a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
            </h1>

        </header><!-- .entry-header -->

        <div class="entry-summary">
            <?php the_excerpt(); ?>

                        <?php if ((get_custom_field('Objective')) !== ''): ?>
                            <?php print_custom_field('Objective'); ?>
                        <?php endif ?> 

        </div>
    </article>
    <!-- #post --><hr />

我的目标是拥有一个包含3个类别的搜索结果页面:


文章(除了下面提到的两个自定义字段之外的所有帖子和页面)

{搜索结果}


自定义字段#1

{搜索结果}


自定义字段#2

{搜索结果}

2 个答案:

答案 0 :(得分:0)

get_post_meta()怎么样?类似的东西:

<?php
// Start the Loop.
while ( have_posts() ) : the_post();

if ($post->post_type == "mobile-experience") { ?>

        <?php get_template_part( 'search-mobile-experience'); // works
    }

if ( get_post_meta($post->ID, 'mobile_app', true) == "mobile_app") { ?> 

        <?php get_template_part( 'new-mobile-app_template');
}
else { ?>

答案 1 :(得分:0)

梅维斯&#39;答案是对的。此外,无论值如何都要检查元:

if( '' != get_post_meta( get_the_ID(), 'mobile_app', true ) ) {
    // do stuff
}