在wordpress页面内通过主题包含自定义php函数

时间:2019-05-13 12:25:34

标签: php mysql wordpress pdo themes

我想将我的自定义PHP文件放在主题之外的简单页面内。

为此,我创建了一个自定义主题,并在“ function.php ”中将我的函数注册为带有“ add_shortcode()”的简码。

结果是,所有常规PHP命令(例如 echo“ Test”; )都可以很好地使用此方法。 但是,一旦我尝试调用一个函数,脚本就会停止。

此外,在wordpress的页面编辑器中,我总是收到错误消息“ 更新失败”,但是我仍然可以保存更改。

注意:所选页面仅包含具有短代码名称的短代码块,而没有其他内容。

这是我的PHP函数。也许有人遇到同样的问题,也许知道如何解决?

自定义模板functions.php:

//Creates the Result Shortcode
function includeFile() {
    include_once( 'wp-content/php/search_plz.php' );
}

add_shortcode('Result', 'includeFile');

dbmanager.php:

$host = '***';
$database = '***';
$username = '***';
$password = '***';
$pdo = null;

try{
    $pdo = new PDO("mysql: host=$host;dbname=$database", $username, $password);
    $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}catch(PDOException $e){
    echo "Error: {$e->getMessage()}";
}

class Users
{
    function getUsers($location){

        global $pdo;

        $users = $pdo->prepare("SELECT * FROM doctors WHERE plz=?");
        $users->execute([$location]);
        $result = $users->fetchAll();

        return $result;
    }

}

search_plz.php:

<?php include('wp-content/php/dbmanager.php'); ?>

<?php

    $input = $_GET['input_location'];

    echo "TEST: {$input}"; //Until here it is working. 

    $users = Users::getUsers($input); //Here the script dies.

?>

<p>Result: <?php echo "in \"".$input."\" "; ?> Location.</p>

<?php foreach($users as $rows): ?>
    <div class="card" style="width: 18rem;">
        <div class="card-header">
            <h4><?php echo "Name: {$rows['firstname']}, {$rows['lastname']}" ?></h4>
        </div>
        <div class="card-body">
            <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
            <a href="#" class="btn btn-primary">Go somewhere</a>
        </div>
    </div>
<?php endforeach; ?>

还有我的wordpress页面:

[Result]

0 个答案:

没有答案