显示Word Press网站帖子和MySQL表格中的页面数据

时间:2016-07-23 作者:Salik Asad

我是word press的新手,我在phpmyadmin 其中包含我想在我的word press网站上不同帖子和页面上显示的数据。我搜索了很多地方,找到了一个名为Allow PHP in Post and Pages. 该插件允许您在帖子和页面中编写php脚本。我在我的页面帖子中尝试了一个小代码,但它只给了我Resource id #147 显示,但不是我想要的结果。这是我在一篇帖子中尝试的代码。

[php]
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("ahadith");
$query = mysql_query("SELECT * FROM muslim");
echo ($query);
[/php]
有人能帮我做这件事吗。或者是否有其他方法可以从我的数据库中获取所需的数据,并将其显示在我的word press网站上。非常感谢。

1 个回复
SO网友:Ismail

默认情况下,WordPress已准备就绪并已连接,请忘记连接到数据库。追求wpdb 用于DB特定任务的类。

首先,致电全球$wpdb 变量,然后使用一些方法来查询特定的自定义表。

不确定表格结构?首先描述它:

global $wpdb;
$table = $wpdb->prefix . "muslim";
$query = $wpdb->get_results( "DESCRIBE $table" );
echo var_dump ( $query );
现在从该表中选择结果:

global $wpdb;
$table = $wpdb->prefix . "muslim";
$results = $wpdb->get_results( "SELECT * FROM $table" );
echo var_dump ( $results );
我坐在桌子上muslim 是否准备好并正确添加。正当

假设您从前面的调整中得到了结果,您可以使用适当的循环来迭代它们。

您可以将其保存在自定义的短代码中,以便在帖子/页面中使用,正如您所述,只需确保阅读API中关于如何shortcodes work

add_shortcode(\'wpse_233021_shortcode\', function(){
    global $wpdb;
    $table = $wpdb->prefix . "muslim";
    $results = $wpdb->get_results( "SELECT * FROM $table" );
    ob_start();
    echo var_dump( $results );
    return ob_get_clean(); // or iterate through and put into an HTML table
});
现在有了这个[wpse_233021_shortcode] 您可以在页面/帖子内容中插入。

假设它工作正常,在不必要的时候不要总是调用DB,所以尝试缓存数据并在数据更新时销毁缓存,或者让瞬态在给定的延迟内过期,可能是1周,您可以使用Transients API 对于缓存,它非常清晰、简单,对于非持久缓存非常有效