簡體   English   中英

Wordpress 自定義簡碼:調用未定義的 function get_results()

[英]Wordpress Custom Shortcode: Call to undefined function get_results()

我是一名開發人員,但對 PHP 或 Wordpress 缺乏經驗。 修補現有的 WP 站點(使用 Divi 主題,如果重要的話)並希望構建一些從 WP 數據庫中提取的短代碼。 在實驗中,我能夠使一些自定義簡碼正常工作(包括將新文件放入主題的functions.php)。 基本的工作正常,但是當我嘗試從 wpdb 讀取時,頁面會拋出此錯誤:

Error: Call to undefined function get_results() in <MY_FILE>

這是我的文件:

<?php

function list_users() {
    global $wpdb;
    $users = get_results("SELECT * FROM $wpdb->users");
    $result = "<p>";
    foreach ($results as $result) {
        $result .= $result->display_name;
        $result .= '<br>';
    }
    $result .= "</p>";
    return $result;
}
add_shortcode( 'all_users', 'list_users' );

?>

對 PHP 新手有什么建議嗎?

您不需要從數據庫查詢中獲取用戶。 WordPress 提供get_users function。 所以,你可以試試下面的代碼。

function list_users() {
    ob_start();

    $users = get_users();
    foreach( $users as $user ) {
        echo '<p>'. $user->data->display_name .'</p>';
    }

    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}
add_shortcode( 'all_users', 'list_users' );

好的,答案很明顯,因為我沒有在 $wpdb 上調用 get_results。

這解決了它:

<?php

function list_users() {
    global $wpdb;
    $users = $wpdb->get_results("SELECT * FROM $wpdb->users");
    $result = "<p>";
    foreach ($results as $result) {
        $result .= $result->display_name;
        $result .= '<br>';
    }
    $result .= "</p>";
    return $result;
}
add_shortcode( 'all_users', 'list_users' );

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM