未显示事件日历事件URL

时间:2017-11-07 作者:Alex Dahlman

我有一个自定义页脚,其中包含正在引入的事件。但是,在使用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 } ?>

1 个回复
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 ); ?>

结束

相关推荐