查询WordPress数据库并发布HTML表

时间:2018-07-14 作者:Morts81

我正在寻找一些帮助来构建基本代码,以查询我的WP数据库,检索一个表,然后将其发布到页面上。网络上似乎有很多东西可以帮助实现这一点,但由于php/sql编码背景有限,我发现很难完成所有工作。我发现通过逆向工程和从那里构建更容易学习。

我已经下载了插件PHP code snippets (Insert PHP) 这使我能够将php代码添加到帖子(在下一版本中不推荐)或短代码中。

我相信下面的代码应该足以查询wp\\u post表并返回数组中的表数据。

global $wpdb;
$result = $wpdb->get_results(\'SELECT * FROM \' . $wpdb->posts . \' LIMIT 10\');
我希望能够从这里使用这些数据在WP页面中生成一个html表。我该怎么办?

一旦我对这些基本代码进行了分类,我就可以在此基础上构建并开发出我需要的东西。

非常感谢您的帮助。

1 个回复
SO网友:Andrea Somovigo

$html= "<table>";    
foreach($result as $r){
  $html .="<tr>";
  $html .="<td>".$r->post_title."</td>";
  $html .="<td><a href=\'".get_the_permalink($r->ID)"\'>".$r->post_title."</a></td>";
  $html .="</tr>";
}
$html .="</table>";
echo $html;
为了避免不受欢迎地使用PHP代码段,您可以将其包装在短代码中,并在页面/帖子内容编辑器中的任何位置使用

function Stack_308511_post_grid( $atts ) {
 $atts = shortcode_atts( array(
  \'limit\' => 10,
  ), $atts,\'limits\'  );

 global $wpdb;
 $html = "";

 $result = $wpdb->get_results(\'SELECT * FROM \' . $wpdb->prefix.\'posts LIMIT \'.$atts[\'limit\']);
 $count = $wpdb->num_rows;
 if($count >0){
  $html .="<table>";    
  foreach($result as $r){
    $html .="<tr>";
    $html .="<td>".$r->post_title."</td>";
    $html .="<td><a href=\'".get_the_permalink($r->ID)."\'>".$r->post_title."</a></td>";
    $html .="</tr>";
   }
  $html .="</table>";
}

return $html;
}
add_shortcode( \'postGrid\', \'Stack_308511_post_grid\' );
因此,在html编辑器中,您可以使用

  • [postGrid] 将使用默认的10个帖子限制,即[postGrid limit=20] 将挑选最新的20篇帖子

结束