这真的很奇怪。 the_permalink();适用于wordpress循环(下面的代码)。它输出正确的URL-但由于某种原因在同一个循环中,不改变查询等,永久链接只输出第一个帖子。
以下是代码:
<?php echo the_permalink(); ?>//This outputs **right** - http://domain.de/?p=18
<?php echo $link;?>
<span class="share_overlay">
<?php echo the_permalink(); ?>//This outputs **wrong** - http://domain.de/?p=18
<?php echo $link;?>
那么我做错了什么?在......之间没有任何东西,即使我只是回声 - &gt;永久链接到.share_overlay我得到了相同的结果。没有回声 - 相同的结果。在.share_overlay之外写the_permalink - 链接没问题。
没有代码 - 在function.php中没有一小段代码 - 甚至没有运行操作DOM的JS。
这里有一些我的代码,所以如果我有n个错误,你可以用脚打我的头;) $ link只是为了查看结果是否相同。我无法看到一个对我来说非常奇怪的错误主题。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $link = get_permalink($post);?>
<article class="post">
<h3><a href="<?php echo $link ?>"><?php the_title(); ?></a></h3>
<em class="meta">
<span class="icn time" title="Datum"></span><time datetime="<?php the_time('Y-m-d') ?>"><?php the_date(); ?></time>
|
<span class="icn cat" title="Kategorie"></span><span class="categorie">
<?php the_category(' '); ?>
</span>
|
<span class="icn social" title="Teilen"></span><span class="share">Teilen
<?php echo the_permalink(); ?>//right
<?php echo $link;?>//right
<span class="share_overlay">
<?php echo the_permalink(); ?>//wrong
<?php echo $link;?>//wrong
<strong>Teile diesen Inhalt auf:</strong>
<span class="share_content">
<a class="t" target="_blank" href="https://twitter.com/share?url=&text=<?php echo $link; ?>: &hashtags=<?php if(has_tag()){$posttags = get_the_tags();if($posttags){foreach($posttags as $tag){ echo $tag->name . ',';}echo'design';}}?>">Tweet</a>
<a class="g" target="_blank" href="https://plus.google.com/share?url=<?php echo $link; ?>">Google+</a>
<a class="f" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=<?php echo $link; ?>">Facebook</a>
</span>
<span class="close"></span>
</span>
</span>
</em>
<?php echo the_permalink(); ?>//right again?!
<?php echo $link;?>//right again?!
<?php the_excerpt(); ?>
<a class="more" title="weiter lesen" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</article>
<?php endwhile; else : ?>
<article class="post">
<h3>No entries found here so far.</h3>
<p>No results found.</p>
</article>
<?php endif; ?>
答案 0 :(得分:0)
解决这不是wordpress本身的问题我认为..在循环之前设置wp_reset_query - &gt;一切都有效。我想我之前搞砸了一些事情,所以我要照看。感谢您的评论 -