获取发布内容并将其显示在div中

时间:2018-10-22 作者:Cesar H

我正在寻找一种获取帖子内容并在div中动态显示的方法。

我的帖子显示在屏幕左侧的列表中,我想在屏幕右侧显示您单击的帖子(我只需要HTML,因为我想应用其他样式而不是single.php文件)。

我在网上搜索了几个星期,但仍然不知道该怎么做,除非我必须使用Ajax(我不完全理解),也许还要使用WP查询?

有没有人对如何做到这一点有想法,并能向我这样的傻瓜解释?

非常感谢!!

编辑:好的,我想出了如何在jQuery中获取帖子ID,并尝试将其发送到Ajax,以便调用帖子内容并在jQuery中获取它。

以下是jQuery部分:

jQuery(".post-link").click(function(){

    var $post_id = $this.data(\'id\');
    jQuery.post(
    ajaxurl,
    {
        \'action\': \'load_post_content\',
        \'the_ID\': $post_id
    },
    function(response){
        jQuery(\'#the-post-content\').html(response);
    });

    return false;
});
以及功能。php部分:

add_action( \'wp_ajax_load_post_content\', \'load_post_content\' );
add_action( \'wp_ajax_nopriv_load_post_content\', \'load_post_content\' );

function load_post_content() {

$the_post_id = $_POST[\'the_ID\'];

$args = array(
    \'p\' => $the_post_id
)

$the_query = new WP_query($args);

if ($the_query->have_posts()) : while ($the_query->have_posts() ) : $the_query->the_post();

    $post_content = the_content();

endwhile;
endif;
echo $post_content;

die();
}
我想我越来越近了,但还是不行,你认为我走对了吗?

谢谢

2 个回复
SO网友:Cesar H

好吧,我成功了,我是这样做的:

Jquery部分:

jQuery(".post-link").click(function(){
    var post_id = jQuery(this).data(\'id\');

    jQuery.post(
        ajaxurl,
        {
            \'action\': \'load_post_content\',
            \'the_ID\': post_id
        },
        function(response){
            jQuery(\'#the-post-content\').html(response);
        }
    );

    return false;
});
以及功能。php部分:

add_action( \'wp_ajax_load_post_content\', \'load_post_content\' );
add_action( \'wp_ajax_nopriv_load_post_content\', \'load_post_content\' );

function load_post_content() {

    $the_post_id = $_POST[\'the_ID\'];
    $args = array(
        \'post_type\' => \'post\',
        \'p\' => $the_post_id
    );

    $ajax_query = new WP_Query($args);

    $the_content;

    if ( $ajax_query->have_posts() ) : while ( $ajax_query->have_posts() ) : $ajax_query->the_post();
        $the_content = the_content();
    endwhile;
    endif; 

    echo $the_content;

    wp_reset_postdata();

    die();
}
希望能有所帮助!

SO网友:Alexander Holsgrove

这个问题需要很多基本的帮助,但基本上您希望包括the_content() 对于左侧的每个帖子。将此内容包装为<div class="article-content">..</div> 以便您可以使用javascript轻松访问它。

接下来,需要添加单击处理程序,以便在单击其中一篇文章时在右侧显示文章内容。

如果您有此结构:

<div class="left">
   <article>
      <h2>My post title</h2>
      <div class="article-content"><p>Lorem Ipsum</p></div>
   </article>

   <article>
      <h2>Another post title</h2>
      <div class="article-content"><p>Lorem Ipsum</p></div>
   </article>

   <article>
      <h2>Third post title</h2>
      <div class="article-content"><p>Lorem Ipsum</p></div>
   </article>
</div>
我假设jQuery可用,因此您可以使用以下内容:

$(\'.left article\').on(\'click\', function(event) {
   var article_content = $(this).children(\'.article-content\').html()
    $(\'.right\').html(article_content);
});
我为你做了一把方便的小提琴。这是非常基本的,但它给了你一些开始的东西:https://jsfiddle.net/g0bxwy6k/

结束

相关推荐

在作者个人资料中使用AJAX分页的关注/关注用户列表

我会尽量说清楚的,我在用“Users Following System“插件。我在author.php profile,现在我尝试使用Ajax分页。当然是author.php 我用这条线来获取用户信息。<?php $curauth = (isset($_GET[\'author_name\'])) ? get_user_by(\'slug\', $author_name) : get_userdata(intval($author)); ?> 这一行用来获取的