如何在Wordpress中自定义PHP页面并 *** 作数据库

如何在Wordpress中自定义PHP页面并 *** 作数据库,第1张

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

到现在为止,离成功只有一步之遥了,那就是新建一个页面, 大功告成!

你会用php页面实现吗,

先用php实现二级嵌套循环.

然后分别设两级循环为一变量

在smarty模板中调用循环变量,用模板的循环调用就可以了.

这个确实有些复杂,不太好说明白.

我知道200源码网上的很多产品都是这么实现的,产品都是用二级分类


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9971191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存