2012-02-27 124 views
0

我很努力地比较两个php变量来显示或不显示一些文本,具体取决于变量是否匹配。这是我有:在Wordpress中比较两个php变量

<?php $link = the_permalink();?> 
<?php $portfolioloop = new WP_Query(array('post_type' => 'news')); ?> 
    <?php while ($portfolioloop->have_posts()) : $portfolioloop->the_post(); ?>       
     <?php while(the_repeater_field('featured_companies')): ?> 
      <?php $company = the_sub_field('featured_company'); ?> 
      <?php if ($link == $company) { ?> 
       show news articles 
      <?php } else { ?> 
       don't show news articles 
      <?php } ?> 
     <?php endwhile; ?> 
    <?php endwhile; // end of the loop. ?> 

我想比较$link$company,如果他们再搭配如果内做的东西。我哪里错了?

我在Wordpress中使用http://www.advancedcustomfields.com插件(如果有帮助的话)。

更新: 首先忘了提及这两个变量是网址。目前,它回应了我想要的网页上的两个相同的网址,但当两个网址不匹配时,它也会回显“显示新闻文章”。

在twitter个人资料下面 - http://www.mediwales.com/v3/members/mediwales/显示了两个相同的网址。但是当你转到这个页面http://www.mediwales.com/v3/members/3m/时,它显示了两个不同的URL,但显示“显示新闻文章”。

+0

这将是一件好事知道哪里出了问题,此代码运行时会发生什么? etc ... – 2012-02-27 16:02:03

+0

是'$ company'的一个固定链接?在循环中是'$ link = the_permalink();' – JKirchartz 2012-02-27 16:03:52

+0

@JKirchartz是的,它是一个固定链接,并在循环中。这是我正在处理的页面 - http://www.mediwales.com/v3/members/mediwales/它是twitter配置文件下的位。 – Rob 2012-02-27 16:06:06

回答

0

就解决了这个问题:

<h2>Latest News</h2>  
<?php $link = get_the_title(); ?> 
<?php $portfolioloop = new WP_Query(array('post_type' => 'news')); ?> 
<?php while ($portfolioloop->have_posts()) : $portfolioloop->the_post(); ?> 
    <?php $post_link = get_post_permalink(); ?>       
     <?php if (get_field('featured_companies') != "") { ?> 
      <?php foreach(get_field('featured_companies') as $post): ?> 
       <?php $company = get_the_title($post_object->ID); ?> 
       <?php if ($company == $link) { ?> 
        <a href="<?php echo $post_link; ?>">News item 1</a> 
       <?php } ?> 
      <?php endforeach;?> 
     <?php } ?> 
<?php endwhile; ?> 
3

你必须要小心的WordPress的原生功能:

the_permalink()呼应了的永久链接(见documentation examples

get_permalink()回报它作为一个变量(参见documentation examples

所以您需要使用:

$title = get_permalink(); 
+0

刚刚尝试过,现在说它们在每个页面上都不匹配,即使其中一个没有匹配。 – Rob 2012-02-27 16:57:54

+0

您确定get_permalink()返回您认为应该返回的内容吗?尝试回显并使用die(),看看它是否提供了你想要的字符串。如果不是,也许包括帖子的ID作为变量,或者将其包含在一个循环中 – hohner 2012-02-27 17:00:15

+0

是的,我有这条线:

当前页面的固定链接:<?php $ link = get_permalink(); echo $ link; ?>

Rob 2012-02-27 17:02:03