【问题标题】:How to load post content into a div when a link is clicked?单击链接时如何将帖子内容加载到 div 中?
【发布时间】:2011-12-20 21:08:30
【问题描述】:
jQuery(document).ready(function($) {        
            $('a.ttLinks').click(function() {

                 var url= $(this).attr("href"); 
                   $("#inCenter>[id^=featuredv]").load(url);    
                 return false;
 });
});  

我尝试制作一个脚本,在单击链接时加载链接的内容,而不是重新加载页面。我不确定为什么,但似乎当点击链接时,它会将我当前所在的实际页面加载到我的特色 div 中,而不仅仅是帖子的内容。我认为当单击永久链接时,它会将帖子加载到 index.php 中,然后将页面返回给我。

<div id="ttContent">
<?php
query_posts('meta_key=featuredt&posts_per_page=5');
if (have_posts()) : while (have_posts()) : the_post();
?>
<div id="featuredt-<?php echo $wp_query->current_post;?>">
<a class="ttLinks" rel="<?php the_permalink(); ?>" href="<?php echo the_permalink();?>">
<?php echo get_post_meta($post->ID, 'featuredt', TRUE);?></a></div>                                     
<?php endwhile;
endif;
?>
</div>

上面的代码是我用来生成链接的 php,我最初使用的是 href,但在阅读了另一篇帖子后,Load Wordpress post content into DIV using AJAX,我想也许我应该尝试使用 rel 标签,没有不同之处,因为无论哪种方式,网址都是相同的,但我很累,尽我所能。

<div id="inCenter">
<?php
query_posts('meta_key=featuredt&posts_per_page=1');
if (have_posts()) : while (have_posts()) : the_post();?>
<div id="featuredv-<?php  echo $wp_query->current_post;?>">
<?php echo $post->post_content;?></div>
<?php endwhile;
endif;
?>
</div>

当点击链接时,这段代码会生成我想要替换的内容。 萤火虫似乎显示的是,第一次单击链接时,它会发送一个 GET 请求,以获取显示在页面中的永久链接,第二次单击任何链接时,它会发送 4 个永久链接的 GET 请求,下次12,以此类推。我没有将 wordpress 用作博客,也没有地方可以加载帖子,所以在发出 GET 请求时,帖子可能默认使用 index.php 加载?再次感谢您的帮助。

【问题讨论】:

  • 你能发布你的 HTML 吗?您发布的 javascript 显然很糟糕。你能解决它吗?
  • 你将需要做更多的工作来获得帮助,使用 firebug - 看看会返回什么(也许有重定向)
  • 我做了一些额外的工作,如果我需要提供更多信息,请告诉我,感谢您抽出宝贵时间回复我。

标签: jquery wordpress


【解决方案1】:

您应该发布您的 HTML 以澄清,但除非您将目标页面的位置存储在 rel 属性(而不是更直观的 href)元素中,否则您需要将您的行更改为 var url=$(this).attr("href");

我只是假设该行正下方的行实际上不在您的代码中(在这种情况下会导致它无法解析)。请根据需要对您的问题进行更改。您只需要发布相关的 HTML 代码(即a.ttlinks 标签和#inCenter div(带有内容))。

【讨论】:

  • 是的,我将位置存储在 rel 属性中,对于措辞不当和细节稀少的问题感到抱歉,我非常疲倦并且非常沮丧,但如果您不介意,我已经更新了我的问题再看看。
【解决方案2】:

好的,所以答案非常简单,我所要做的就是制作一个带有上述代码的 single.php

<?php echo $post->post_content; ?>

并且代码有效。我没有加载我的帖子的页面,因为我没有使用 wordpress 作为博客,我认为我不需要一个,但我没有任何代码告诉 .js 加载什么所以它只是加载默认 index.php。现在我的代码完美运行!或者,至少目前它运行良好,我还有一些测试要做。抱歉,如果我的问题让任何人感到沮丧,我只是不知道如何正确地问我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2013-09-30
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多