【问题标题】:Wordpress AJAX ContentWordPress AJAX 内容
【发布时间】:2010-10-18 05:14:00
【问题描述】:

如何将动态 wp 内容加载到我的 wordpress 博客索引页面中?

理想情况下,我有一个索引页面,它将带有?tag= 查询的GET 请求发送到另一个页面,该页面呈现我想在我的博客中看到的帖子列表。我该如何实现?

【问题讨论】:

    标签: php ajax wordpress


    【解决方案1】:

    您可以使用以下 url 获取标签提要的 rss 版本:http://[[domain_name]]/tag/[[tag_name]]/feed/

    将 [[domain_name]] 替换为您的域名,将 [[tag_name]] 替换为您要查找的标签。

    然后您可以使用 javascript 解析此 XML/RSS

    【讨论】:

      【解决方案2】:

      对我来说,我会这样做:

      1. 制作tag-the_tag_slug.php(如果你已经有了,那很好)

      2. 在 AJAX 获取请求中,将请求发送到 url http://yourdomain.com/the_tag_slug(或您的标签的 url,它将列出标签中的帖子)

      3. 多发送一个$_GET参数,如$_GET["using_ajax"] = true

      4. tag-the_tag_slug.php 中,如果$_GET["using_ajax"] 为假或未定义,则执行正常的html 输出。否则,运行循环并生成所需的 HTML 输出。

      5. ajax调用后,在success函数中,将返回的HTML输出插入到你想要的地方即可。

      这样做的原因是,在 WP 3.0 中,您有一个名为 get_template_part() 的模板标签,因此您的 ajaxified 循环输出可以提取为 loop-ajax_tag.php。从理论上讲,您可以添加任意数量(并通过确定诸如$_GET["loop-template"] 来选择一个)

      另一个原因是您不需要创建或修改很多 javascript DOM(返回 xml / json 需要您在 jaavscript 中解释这些数据,并且您必须将大量模板代码复制并粘贴到 javascript 中)

      【讨论】:

        【解决方案3】:

        我有一个使用标准 AJAX WordPress 指南的更简单的解决方案。在你的functions.php中添加以下代码:

        add_action('wp_ajax_posts_by_tag', 'ajax_posts_by_tag');
        add_action('wp_ajax_nopriv_posts_by_tag', 'ajax_posts_by_tag');
        
        function ajax_posts_by_tag() {
          $q = new WP_Query('tag=' . $_POST['tag'])
          echo '<ul>';
          while ($q->have_posts())
          {
            $q->the_post();
            echo '<li>' . $q->post->post_title . '</li>';
          }
          echo '</ul>';
        
          die();
        }
        

        然后,在您主页上的 javascript 中,使用以下方法按标签检索内容(假设您使用的是 jQuery):

        jQuery(document).ready(function($) {
          var data = {
            action: 'posts_by_tag',
            tag: 'my-tag'
          };
        
          jQuery.post(ajaxurl, data, function(response) {
            alert(response);
          });
        });
        

        类似的东西。然后,您可以将响应压缩到页面上的任何块中。这将获取标记为 my-tag 的帖子。

        【讨论】:

          猜你喜欢
          • 2011-10-31
          • 2017-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-19
          • 1970-01-01
          • 1970-01-01
          • 2019-10-29
          相关资源
          最近更新 更多