您可以在匹配某些URL模式时添加自定义模板,然后使用自己的函数在其上打印任何您想要的内容,以动态返回数据库查询结果。
以下示例添加了一个新的自定义模板建议。所以当URL包含foobar
作为第一段和非空的第二段foobar.php
将呈现当前主题中的模板。
add_action(\'template_include\', \'template_suggestions\');
function template_suggestions($template) {
$segments = explode(\'/\', parse_url($_SERVER[\'REQUEST_URI\'], PHP_URL_PATH));
$foobar_template = locate_template([\'foobar.php\']);
if (isset($segments[1]) && isset($segments[2]) && $segements[1] === \'foobar\' && $foobar_template !== \'\') {
status_header(200);
return $foobar_template;
}
return $template;
}
现在使用任何其他自定义函数返回数据库查询结果。
function foobar_results() {
$myrows = [];
$segments = explode(\'/\', parse_url($_SERVER[\'REQUEST_URI\'], PHP_URL_PATH));
if (isset($segments[1]) && isset($segments[2]) && $segements[1] === \'foobar\') {
global $wpdb;
$myrows = $wpdb->get_results( "SELECT * FROM mytable WHERE id = {$segments[2]}" );
}
return $myrows;
}
然后进来
foobar.php
只需循环查看结果。
<?php foreach(foobar_results() as $row): ?>
<?php print $row->id; ?>
<?php endforeach; ?>