WordPress条件:仅显示当前页面标题是否等于post meta

时间:2010-05-14 05:49:06

标签: php wordpress function metadata conditional

我在WordPress的某个帖子类型下调用一堆帖子,但是我正在尝试添加一个条件,如果那些帖子的自定义元字段(标记为“disc”)等于当前帖子的标题,它将首先检查

这是我所拥有的,但这种条件似乎不起作用:

<?php
   $pages = get_posts('numberposts=9999&post_type=song&post_status=publish&order=ASC&orderby=date');

   $i = 1;
   foreach( $pages as $page ) {
       $content = $page->post_title;
       if( empty($content) ) continue;

       $content = apply_filters('the_content', $content); ?>

       <?php if(get_post_meta($page->ID, "p30-disc", true)=="the_title()") { ?>

       <tbody class="vevent">

       <?php if ($i%2===0) { ?><tr class="gigpress-row gigpress-alt">

       <?php } else { ?><tr class="gigpress-row"><?php } ?>

       <td><?php echo $page->post_title ?></td>
        <td><?php echo get_post_meta($page->ID, "p30-length", true); ?></td>
        <td><a href="http://itunes.com/<?php echo get_post_meta($page->ID, "p30-itunes-song", true); ?>">BUY</a></td>

        </tr>

        <tr class="gigpress-info">

        <td colspan="3"><?php echo $page->post_content ?></td>

        </tr>

        </tbody>    

<?php $i++;

   } } ?>

当我简单地回应“get_post_meta($ page-&gt; ID,”p30-disc“,true)”或“the_title()”时,它会吐出正确的值,这些值是相等的,所以显然有些错误有条件的。

谢谢,

瓦德

3 个答案:

答案 0 :(得分:1)

看起来你正在“引用”标题函数 - 基本上,当你应该调用它时,将它变成一个字符串。

<?php if(get_post_meta($page->ID, "p30-disc", true)==the_title()) { ?>

应该有用吗?

答案 1 :(得分:0)

原来有一个名为get_the_title()的函数用于此类事情。工作得很好。

答案 2 :(得分:0)

您可以使用get_the_title()功能来路由页面或显示特定内容。

if ( is_front_page() || is_home() ) :
    get_template_part( 'template-parts/content', 'home' );
elseif(get_the_title() === 'account'):
    get_template_part( 'template-parts/content', 'account' );
elseif(get_the_title() === 'login'):
    get_template_part( 'template-parts/content', 'login' );
else :
    get_template_part( 'template-parts/content', 'page' );

注释 区分大小写,因此,如果页面标题全部为小写,则字符串应为to。