我正在寻找一些帮助来构建基本代码,以查询我的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表。我该怎么办?
一旦我对这些基本代码进行了分类,我就可以在此基础上构建并开发出我需要的东西。
非常感谢您的帮助。
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篇帖子