当我从WordPress中的url获取帖子id时,如何从数据库中获取帖子数据

时间:2017-03-15 作者:Abdelrhman ِAboelsaad

我正在从url获取帖子id,如下所示

https://www.example.com/download/?id=241
在这个id的基础上,我想从db获取post数据,但它什么都没有得到,我尝试了这个代码

  <?php
$id = $_GET[\'id\'];
// WP_Query arguments
$args = array (
    \'category_name\'          => \'download\',
    \'showposts\'              => \'1\',
    \'post_id\'    => $id,
  \'post_type\' => \'page\'
);

// The Query
$my_query = new WP_Query( $args );
//print_r($my_query);
  if ($my_query->have_posts() ) : while ($my_query->have_posts() ) : $my_query->the_post();  // Start the loop
    $thumb_id = get_post_thumbnail_id();
    $thumb_url = wp_get_attachment_image_src($thumb_id, true);
?>

                                 <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" target="_blank">
                                    <img src="<?php echo $thumb_url[0]; ?>"  />
                                    <h3><?php the_title(); ?></h3>
                                    <time>تاريخ النشر: <?php the_time(\'l, F j, Y\'); ?></time>
                                </a>                                    

            <?php
               endwhile; endif;// End the Loop and Check for Posts
               wp_reset_query(); // Reset the loop
             ?>
所以我想通过使用id 我正在通过url。所以请告诉我我的代码能做什么

3 个回复
SO网友:ehsan

您可以使用$\\u GET参数来获取id。

$id = $_GET[\'id\'];
或者试试这个:

global $post;
echo $post->ID;
但args数组中似乎有问题。当你知道被请求帖子的确切id时,你就不需要这样使用它了。您可以使用此选项:

get_post($id);
然后,您不需要循环浏览,因为您有一篇文章要显示。

SO网友:Anand Pratap Rao

$id = $_GET[\'id\']; // get the ID from the URL

$post_data = get_post($id); // get post object
然后你得到了职位$post_data. 只需检查:

var_dump($post_data);

SO网友:Ian

它不起作用有几个原因。

您正在尝试查询页面的ID,并且正在指定类别分类法。页面通常没有与其关联的类别

$args = array (
    \'post_type\'          => \'download\', //use post_type instead since downloads is a post type not a taxonomy 
    \'posts_per_page\'              => \'1\',
    \'post_id\'    => $id,
);

相关推荐

如何在WordPress unctions.php中将短代码值传递到Head

我正在尝试为wordpress帖子上的图表创建一个快捷代码。到目前为止,我已经使用了短代码,我可以看到短代码值正在被传递,但我需要知道的是如何将这些值传递到Google图表,以便正确工作。以下是我目前掌握的代码:function chart_shortcode($atts) { $a = shortcode_atts( array( \'value1\' => \'\', \'value2\' => \'\', \'value