问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在WordPress中自定义PHP页面并操作数据库

发布网友 发布时间:2023-11-09 23:15

我来回答

1个回答

热心网友 时间:2024-11-22 19:58

1. 尝试设置一个页面模板
1)拷贝一个index.php并改名为其它名,如list.php;
2)在list.php页面最顶部添加
<?php /*
Template Name: 友链
*/
?>
以上两步就可以创建一个页面模板了,修改并保存好这个文件后,创建一个新页面或者修改已存在的页面。在右下边有个“页面模板”的面板,在下拉菜单中选中“友链”后保存就可以了。

然后在页面中添加任何内容,包括html代码就可以显示了。可是我的需求是要自己完成PHP代码获取数据并展示,它不能这么做。
2. 调用 WordPress 的 API实现URL正确跳转
这种方法的自由度较高,并且可以创建非WordPress格式的URL。比如我们要把 www.example.com/list 转交给主题文件夹下的 /custom/list.php 来处理,就可以用这种方式来处理。这种方法用到 template redirect 钩子,template redirect 是 WordPress 在预处理好所有参数设置之后决定调用主题模板的时候调用的。
在functions.php模板函数文件中添加以下实例代码:
function loadCustomTemplate($template) {
global $wp_query;
if(!file_exists($template))return;
$wp_query->is_page = true;
$wp_query->is_single = false;
$wp_query->is_home = false;
$wp_query->comments = false;
// if we have a 404 status
if ($wp_query->is_404) {
// set status of 404 to false
unset($wp_query->query["error"]);
$wp_query->query_vars["error"]="";
$wp_query->is_404=false;
}
// change the header to 200 OK
header("HTTP/1.1 200 OK");
//load our template
include($template);
exit;
}

function templateRedirect() {
$basename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
loadCustomTemplate(TEMPLATEPATH.'/custom/'."/$basename.php");
}

add_action('template_redirect', 'templateRedirect');

这样就实现了 WordPress 查找 /custom 文件夹下的 php 文件,并且将相匹配的 URL 请求转交给对应的 php 文件来处理的效果,与此同时,这个 php 文件还保持了对 WordPress API 的调用,因此留给我们的空间非常大。
接下来就可以在 /custom 文件夹下自定义一个list.php文件然后通过链接www.example.com/list访问。
3. 添加页面内容,获取自定义数据库/表中的内容
然后就可以根据需要自己需要来实现自己想要的功能,这里需要有以下几点要处理:
1)如何操作数据库
WordPress提供了一个全局变量$wpdb,并将其实例化为wpdb类的对象。这样我们就可以直接使用$wpdb来调用所有的数据库操作函数。通过这个$wpdb对象,我们可以对WordPress数据库进行任何操作,包括建表、查询、删除、更新等。使用$wpdb->get_results实现执行sql语句操作数据库,并获取结果。
global $wpdb;
$sql= "SELECT * FROM ".$wpdb->prefix.table;
$a = $wpdb->get_results($sql);

2)使用wordpress的样式
通过F12查看首页代码就可以发现只要使用对应的class样式就能轻松让页面统一规整。那么就把对应的html添加到自定义PHP页面中即可。

3)利用wordpress的规则轻松实现翻页
wordpress已经默认支持翻页,格式如:www.example.com/list?page=$1,只要在自定义的页面里面定义好每页返回正确的内容就好啦。
4. 设置nginx rewrite规则
可读性强的URL一定不能是www.example.com/list?page=2这样的格式,对爬虫也不友好,那就需要配置好rewrite规则,我使用的是nginx的配置为:
rewrite ^(.*)/indexed/page/([0-9]+)$ $1/indexed?page=$2 last;

到现在为止,离成功只有一步之遥了,那就是新建一个页面, 大功告成!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 火锅餐厅厨房有哪些 小火锅厨房设备有哪些 ...要从天津人才市场调,我如何将档案调到天津人才市场 海尔电视怎么样273 ...2分) A.我们要把改善民生、保障民生、关注民生作为一切工作_百度... 海尔电视好不好?18 海尔电视好吗?质量怎么样?781 海尔电视怎么样,质量好吗?299 你好,我今天抽奖中了一台平板电脑,然后说三年内要用完4000元话费,每 ... 羊穿快速报告没问题 详细报告会有问题吗4 问女神异闻录5R(p5r)莫娜的最强电刑装备是啥啊?只找到光之剑 防具和... 为什么打印机打印a3纸张显示从侧面进纸 佳能照相机拍照的时候,液晶屏没图像是怎么回事26 不锈钢花了怎么抛 canon PC1304 相机取景器花掉了,摁快门也拍不出照... 不锈钢怎么抛亮 ...但是无法对数据库进行修改,老是报错,试了很多方法,还是没用,很... ...强台风且马上来临沿海城市,多地沿海地区有哪些需要注意的地方... 台风“梅花”将波及12省市,多地会有大风特大暴雨!会影响到中部地区吗... 为什么人的脚一只大一只小??5 职业病分为几大类多少种9 张杰仰望星空主持人报幕词!!!急需,在线等!!82 男友是军人,今天发现他的微信朋友圈看不了,什么意思?我是备胎...3 为什么我男朋友的微信网名改成以后的以后呀!不懂1 沈阳哪家能给苹果手机表面翻新? 沈阳有可以上门给苹果手机换电池的吗?1 沈阳市新民有苹果手机客服吗 观看比赛 用英文怎么说 沈阳国美,苏宁的iphone4s大概都卖多少钱呀? 发现淋巴结肿大应如何进行描述? 吴奇隆终于回应为什么一直没孩子了,网友:心疼刘诗诗 《十五从军征》最后一句说“出门东向望,泪下沾我衣”。为何要向“东... 吴奇隆刘诗诗带儿子游迪士尼,夫妻相差17岁仍热恋,两人感情有多好... Property代表什么 昨天去赏资买了两件调整型内衣,穿了感觉好勒,上楼梯都喘不过气来了... amazon的HTML代码可以通过哪些软件制作出来啊? 不锈钢与碳钢接触会导致不锈钢腐蚀吗?通过上两种材料接触导致渗碳而引起... 胆结石手术后吃核桃好吗? 我胸比较散,但是穿调整型内衣挤在一起,反而觉得胸闷很难受怎么办?这样... ...机怎么用侧面手送台进纸???用了两年了,还是不懂。。只能用纸盒... ...数据库,插入的时候没有问题,更新的时候也不报错,方法如下:_百度知 ... 骐达和轩逸低配自动挡哪个性价比更高呢?