我有一个自定义页脚,其中包含正在引入的事件。但是,在使用tribe\\u get\\u event\\u meta时,不再显示链接。给出的链接只是我的主页url链接,而不是指向事件页面的链接。我的链接代码是
<?php
global $post;
$i = 0;
$events = tribe_get_events( array(
\'posts_per_page\' => 3,
));
foreach ( $events as $post ) {
setup_postdata( $post );
?>
<a class="event-links" href="<?php echo tribe_get_event_meta( get_the_ID(), \'_EventURL\', true ); ?>" target="_self">
<li class="evlist" id = "evli-<?php echo $i;?>" >
<span class="evdate" id = "evspd-<?php echo $i;?>" >
<?php echo tribe_get_start_date($post, false, \'F j\' );?>
</span >
<span class="evspan" id="evspanid-<?php echo $i;?>"><h2 class="evhead" id = "evspt-<?php echo $i;?>" >
<?php echo "$post->post_title"; ?>:</h2 >
<?php echo tribe_events_get_the_excerpt( $post );?>
</span >
</li >
</a>
<?php $i++; ?>
<?php } ?>
SO网友:weaselnerd
你的问题可能是由于tribe_events_get_the_excerpt()
函数调用wp_reset_postdata()
, 重置global $post
对象返回到原始查询(即页脚所在的页面)。get_the_ID()
返回全局$post
对象,因此您将从循环中获取页面的ID,而不是事件的ID。和setup_postdata()
做not 分配全局$post
变量
在这种情况下,最简单的解决方案应该是更换get_the_ID()
具有$post->ID
($post
此处引用循环的本地事件值,而不是全局):
<?php echo tribe_get_event_meta( $post->ID, \'_EventURL\', true ); ?>