通过点击链接显示帖子

时间:2016-10-14 作者:Yoona

我需要在div内容(左)中显示相应的帖子,当单击链接列表(右)时,我不知道如何传递帖子ID&;单击链接时,在div(左)中加载php。

这是我的代码:

  <div class="display-post">
               <?php $args = array(
                          \'post__in\' => array(111,444,555) /*how to pass list of ID here*/
                );

                $posts = get_posts($args);

                foreach ($posts as $p) :
                //post!
                endforeach; ?>

 </div>


 <div class="lists of link">
    <a href="#">Link a</a> //displays post id: 222 & 333; when click
    <a href="#">Link b</a> //displays post id : 111 & 444 & 555 when click 
 </div>
我是个新手,不知道如何调用click事件来传递div类“display post”中的值。

我想我必须使用jquery ajax方法才能做到这一点,但对于像我这样的初学者来说还不是很清楚,希望有经验的人能给我更简单的指导。

1 个回复
最合适的回答,由SO网友:Rishabh 整理而成

您可以通过使用Query String.首先你必须template 在主题文件夹中。要在右侧显示帖子列表,并在左侧显示我正在使用的帖子描述div 使用类名rightleft (在这些类中指定所需的css属性)。

在右侧div中显示立柱列表

<?php
/**
* Template Name: Posts
*/
get_header();   
?>
<div class="right" style="float:right;; width:40%;">
<?php

 $paged = get_query_var(\'paged\') ? get_query_var(\'paged\') : 1; 

$args = array(
\'post_type\' => \'post\',  //Specyfying post type    
\'posts_per_page\' => 10,  //No. of posts to show     
\'paged\' => $paged       //For pagination
);

$loop = new WP_Query( $args );

while ( $loop->have_posts() ) : $loop->the_post();
    //To get ID of post
    $id = get_the_ID();     
上面的代码只是创建循环来显示每个帖子列表或归档页面中发生的帖子列表。并显示我们简单使用的帖子标题the_title() 具有permalink的函数。

但在这种情况下,要将标题作为帖子的链接,我们不会使用永久链接,而是使用自定义链接anchor tag (<a>) 使用查询字符串概念使标题可单击。要实现这一点,我们必须指定if 中的条件url. 在里面url if 条件表示为question mark (?).

    //To show Title of post
    ?>      
    <a href="http://localhost:85/sdc/abc/?postid=<?php echo $id; ?>" style="color:#444444;"><?php the_title(); ?></a>
    <br> <?php
endwhile;
?>
</div>
在上述代码的锚定标记的url中,我们将帖子的ID存储在一个变量中postid (?postid=). $id 变量包含Post的ID(因为我们使用get_the_ID() 上述代码中的函数)。我们正在赋值$idpostid. 所以现在postid 包含post的Id。

点击左侧显示帖子描述

现在我们有了postid 变量,其中存储了post的ID,我们只需要从postid. 获取的值postid 我们将使用$_GET[\'postid\'] 方法如下所示。

<div class="left" style="float:left; width:40%;height:auto;">
<?php

    $post = $_GET[\'postid\'];  //Fetching value of postid from url
现在我们有了postid in变量$post. 换句话说$post 现在包含我们需要在页面左侧显示其描述的帖子的ID。现在,我们只需要使用该ID将帖子的内容调用到当前页面。为此,以下函数将起作用。

    //To show post\'s content
        $include = get_posts("include=$post");
      $content = apply_filters(\'the_content\',$include[0]->post_content);
      echo $content;

?>
</div>
<?php
get_footer();
Note: 阅读代码行上的所有描述和注释,以完全理解代码。我试着让它尽可能简单,但如果有任何疑问,请询问。

相关推荐

浏览器刷新时删除数据库条目,AJAX PHP jQuery

我有一个表单,在通过ajax提交表单时更新数据库表中的列。一切都很好,数据库表列可以获取信息,但一旦刷新浏览器,信息就会从数据库中删除。如果meta\\u值不存在,但meta\\u值也在提交表单时创建的数据库中,则PHP将执行数据库更新。我希望信息保留在数据库中,直到或除非meta\\u值被删除或不存在。任何见解都将不胜感激。PHPadd_action(\'wp_ajax_hide_this\', \'hide_this_by_id\'); add_action(\'wp_ajax_nopriv_