我很难比较两个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
,如果匹配,则执行if中的内容。我哪里错了?
如果有帮助的话,我在Wordpress中使用http://www.advancedcustomfields.com插件。
更新: 首先忘了提两个变量是url。目前它正在回显出我想要的页面上相同的2个网址,但是当2个网址不匹配时,它也会回显“显示新闻文章”。
在Twitter个人资料下方 - http://www.mediwales.com/v3/members/mediwales/显示相同的两个网址。但是当你转到这个页面http://www.mediwales.com/v3/members/3m/时,它显示了两个不同的网址,但显示了“显示新闻文章”。
答案 0 :(得分:3)
你必须小心使用Wordpress的本机功能:
the_permalink()
回应固定链接(请参阅documentation examples)
get_permalink()
将作为变量返回<(documentation examples)
所以你需要使用:
$title = get_permalink();
答案 1 :(得分: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; ?>