在Wordpress中比较两个php变量
问题描述:
我很努力地比较两个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,但显示“显示新闻文章”。
答
就解决了这个问题:
<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; ?>
答
你必须要小心的WordPress的原生功能:
the_permalink()
呼应了的永久链接(见documentation examples)
get_permalink()
回报它作为一个变量(参见documentation examples)
所以您需要使用:
$title = get_permalink();
这将是一件好事知道哪里出了问题,此代码运行时会发生什么? etc ... – 2012-02-27 16:02:03
是'$ company'的一个固定链接?在循环中是'$ link = the_permalink();' – JKirchartz 2012-02-27 16:03:52
@JKirchartz是的,它是一个固定链接,并在循环中。这是我正在处理的页面 - http://www.mediwales.com/v3/members/mediwales/它是twitter配置文件下的位。 – Rob 2012-02-27 16:06:06