使用简码从数据库中检索数据

Posted

技术标签:

【中文标题】使用简码从数据库中检索数据【英文标题】:Retrieve Data from Database using Shortcode 【发布时间】:2017-06-29 20:14:36 【问题描述】:

我正在尝试使用我找到的简码函数从 wordpress 表中检索数据。它工作并检索所有列的数据。当我尝试指定我想要的列时,它仍然给了我一切。最终,我要做的是检索我想要的列的数据并使用 css(不是表格格式)设置该数据的样式。我是 php 新手,所以我想知道是否有人可以让我知道这是否可以使用简码。如果可能的话,任何帮助将不胜感激。提前谢谢你,兰迪

这是我正在使用的代码:

if ( !defined( 'WP_FD_ABSPATH' ) )

define( 'WP_FD_ABSPATH', plugin_dir_path( __FILE__ ) );

function wp_first_shortcode($atts)
global $wpdb;
$a = shortcode_atts( array(
'table_name' => ",
'columns' => ",
), $atts );
$showcolumns=array();
if($a['columns']!="")
$column=$a['columns'];
$showcolumns=explode(',',$a['columns']);

else
$column='*';
$get_columns=$wpdb->get_results("describe ".$a['table_name']."");
foreach($get_columns as $fields) $showcolumns[]=$fields->Field;


$columncount=count( $showcolumns);

$result_query=$wpdb->get_results( "select $column from ".$a['table_name']."");
echo '<table><tr>';
for($i=0;$i<$columncount;$i++) echo '<th>'.$showcolumns[$i].'</th>';
echo '</tr>';
foreach($result_query as $result_row)
echo '<tr>';
for($i=0;$i<$columncount;$i++) echo '<td>'.$result_row->$showcolumns[$i].'</td>';
echo '</tr>';

echo '</table>';

add_shortcode('fetchdata', 'wp_first_shortcode');
function table_value_function() 
query_value(array('orderby' => 'date', 'order' => 'DESC' , 'showvalues' => ""));
wp_reset_query();
return $return_string;

?>

这是我正在使用的简码:

[fetchdata table_name='my_wp_table' columns ='Display_Name' 'First_Name' 'Last_Name' 'Address_1' 'Address_2' 'City' 'State' 'Phone']

【问题讨论】:

我仍然想弄清楚的是如何使用这个短代码只检索我想要显示的列:[fetchdata table_name='my_wp_table' columns ='Display_Name''First_Name''Last_Name ' 'Address_1' 'Address_2' 'City' 'State' 'Phone'] 目前我得到了表中每一列的所有值。任何帮助,将不胜感激。提前谢谢你,兰迪 【参考方案1】:

好吧,我想你只是想摆脱表格,因为你想用 CSS 来设置它的样式。请按照以下代码:

echo '<div class="something">';
for($i=0;$i<$columncount;$i++) echo '<h1>'.$showcolumns[$i].'</h1>';

foreach($result_query as $result_row)
echo '<div class="something_2">';
for($i=0;$i<$columncount;$i++) echo '<p>'.$result_row->$showcolumns[$i].'</p>';
echo '</div>';

echo '</div>';

希望,它会有所帮助。

【讨论】:

完美!我留下了积极的投票,但由于我是新手,所以没有显示。非常感谢我删除了显示列标题的回声,因为我将应用标签。我没有得到的是如何使用我的简码仅检索我想要的列: [fetchdata table_name='my_wp_table' columns ='Display_Name' 'First_Name' 'Last_Name' 'Address_1' 'Address_2' 'City' 'State ''电话'] 如果回答了您的问题,您可以接受。稍后我会为您更新答案。 好的,我点击了复选标记,它现在是绿色的。谢谢! 我仍然想弄清楚的是如何使用这个短代码只检索我想要显示的列:[fetchdata table_name='my_wp_table' columns ='Display_Name''First_Name''Last_Name ' 'Address_1' 'Address_2' 'City' 'State' 'Phone'] 目前我得到了表中每一列的所有值。任何帮助,将不胜感激。提前谢谢你,兰迪

以上是关于使用简码从数据库中检索数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WordPress 简码中使用 AJAX?

Wordpress 从内容中删除简码

如何从 Wordpress 页面/帖子中获取所有标签作为简码列表?

如何从functions.php中的简码挂钩中排除产品类别ID - WooCommerce

将 ACF 字段传递给简码

所有从 php 中的 ms access 数据库中检索数据