While循环中IF语句的帮助

时间:2012-11-19 作者:Beto

我有以下代码片段,基本上我从元框中获取id的设置值,根据循环获取当前id,尝试并匹配,如果htey match我想从匹配的id中提取值,目前我只能获取id,但我也想获取该帖子的相关自定义字段值。

另外,我也不知道为什么,即使它与值匹配,它仍然会两次回显else语句,我想这是因为它在while循环中,但我该如何处理它呢?

<?php 
                  $list_agent = get_post_meta( $post->ID,\'ec_agents\',true );    
                  $args = array( \'post_type\' => \'agent_type\');  

                    $the_query = new WP_Query( $args );
                    $id = $post->ID;
                    while ( $the_query->have_posts() ) : $the_query->the_post();

                        if ($id == $list_agent) {
                            echo "success";
                            the_title();

                            //Both Meta values not showing
                            echo get_post_meta( $post->ID,\'_agent_phone\',true );
                            echo get_post_meta( $post->ID,\'_agent_email\',true );
                        } else {
                            echo "better luck next time";
                        }
                    endwhile;

                    wp_reset_postdata();
                    ?>

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您正在设置$id = $post->ID; 循环外部agent_type 帖子,永远不会匹配。

不管怎样,如果你对agent_type 不匹配的帖子,只需通过ID查询您想要的帖子:

$list_agent = get_post_meta( $post->ID,\'ec_agents\',true );
$args = array(
    \'post_type\' => \'agent_type\',
    \'p\' => $list_agent
);
$agent_query = new WP_Query( $args );
while ( $agent_query->have_posts() ) : $agent_query->the_post();
    echo get_post_meta( get_the_ID(),\'_agent_phone\',true );
    echo get_post_meta( get_the_ID(),\'_agent_email\',true );
endwhile;
wp_reset_query();

结束

相关推荐

Metaboxes not saving data

我正在为一个插件重建一个元盒,它现在不会保存我输入的数据。HTML几乎与以前完全相同,但save\\u元函数根本不起作用。我已经阅读了不少教程,在StackExchange和其他几个网站上查看了大量问题,并试图找出任何容易的陷阱,但这些似乎都不是问题所在。有人能看看这个,告诉我我错过了什么吗?备注:这都是一节课。time\\U date\\U元函数中的数组用于另一个返回HTML的函数。据我所知,这不是问题所在。HTML字段显示正确,其源代码与我之前手动写出的HTML字段几乎相同。手写HTML与此函数输出之