我想将我的自定义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]