1. 嘗試設(shè)置一個頁面模板

創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有十年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,1000+客戶的共同信賴。提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、外鏈、建網(wǎng)站、網(wǎng)站搭建、成都響應(yīng)式網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
1)拷貝一個index.php并改名為其它名,如list.php;
2)在list.php頁面最頂部添加
?php /*
Template Name: 友鏈
*/
?
以上兩步就可以創(chuàng)建一個頁面模板了,修改并保存好這個文件后,創(chuàng)建一個新頁面或者修改已存在的頁面。在右下邊有個“頁面模板”的面板,在下拉菜單中選中“友鏈”后保存就可以了。
然后在頁面中添加任何內(nèi)容,包括html代碼就可以顯示了。可是我的需求是要自己完成PHP代碼獲取數(shù)據(jù)并展示,它不能這么做。
2. 調(diào)用 WordPress 的 API實(shí)現(xiàn)URL正確跳轉(zhuǎn)
這種方法的自由度較高,并且可以創(chuàng)建非WordPress格式的URL。比如我們要把 轉(zhuǎn)交給主題文件夾下的 /custom/list.php 來處理,就可以用這種方式來處理。這種方法用到 template redirect 鉤子,template redirect 是 WordPress 在預(yù)處理好所有參數(shù)設(shè)置之后決定調(diào)用主題模板的時候調(diào)用的。
在functions.php模板函數(shù)文件中添加以下實(shí)例代碼:
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');
這樣就實(shí)現(xiàn)了 WordPress 查找 /custom 文件夾下的 php 文件,并且將相匹配的 URL 請求轉(zhuǎn)交給對應(yīng)的 php 文件來處理的效果,與此同時,這個 php 文件還保持了對 WordPress API 的調(diào)用,因此留給我們的空間非常大。
接下來就可以在 /custom 文件夾下自定義一個list.php文件然后通過鏈接訪問。
3. 添加頁面內(nèi)容,獲取自定義數(shù)據(jù)庫/表中的內(nèi)容
然后就可以根據(jù)需要自己需要來實(shí)現(xiàn)自己想要的功能,這里需要有以下幾點(diǎn)要處理:
1)如何操作數(shù)據(jù)庫
WordPress提供了一個全局變量$wpdb,并將其實(shí)例化為wpdb類的對象。這樣我們就可以直接使用$wpdb來調(diào)用所有的數(shù)據(jù)庫操作函數(shù)。通過這個$wpdb對象,我們可以對WordPress數(shù)據(jù)庫進(jìn)行任何操作,包括建表、查詢、刪除、更新等。使用$wpdb-get_results實(shí)現(xiàn)執(zhí)行sql語句操作數(shù)據(jù)庫,并獲取結(jié)果。
global $wpdb;
$sql= "SELECT * FROM ".$wpdb-prefix.table;
$a = $wpdb-get_results($sql);
2)使用wordpress的樣式
通過F12查看首頁代碼就可以發(fā)現(xiàn)只要使用對應(yīng)的class樣式就能輕松讓頁面統(tǒng)一規(guī)整。那么就把對應(yīng)的html添加到自定義PHP頁面中即可。
3)利用wordpress的規(guī)則輕松實(shí)現(xiàn)翻頁
wordpress已經(jīng)默認(rèn)支持翻頁,格式如:,只要在自定義的頁面里面定義好每頁返回正確的內(nèi)容就好啦。
4. 設(shè)置nginx rewrite規(guī)則
可讀性強(qiáng)的URL一定不能是這樣的格式,對爬蟲也不友好,那就需要配置好rewrite規(guī)則,我使用的是nginx的配置為:
rewrite ^(.*)/indexed/page/([0-9]+)$ $1/indexed?page=$2 last;
到現(xiàn)在為止,離成功只有一步之遙了,那就是新建一個頁面, 大功告成!
在 數(shù)據(jù)表 的基礎(chǔ)上 加一個標(biāo)簽表 再加一個數(shù)據(jù)標(biāo)簽關(guān)聯(lián)表 然后根據(jù)數(shù)據(jù)ID去查找 標(biāo)簽,也可以根據(jù)標(biāo)簽 查找出數(shù)據(jù)
cms提供直接輸出、PHP代碼體兩種方便開發(fā)者使用的數(shù)據(jù)輸出接口。
1、直接輸出
本類型是將后臺錄入的數(shù)據(jù)格式原樣輸出到客戶端
返回格式為:
array(3) { ["code"]= int(1) ["msg"]= string(2) "ok" ["data"]= string(7) "test123" }
2、JSON數(shù)組
本類型數(shù)據(jù)內(nèi)容必須是一個json格式的數(shù)組字符串
返回格式為:
array(3) { ["code"]= int(1) ["msg"]= string(2) "ok" ["data"]= array(3) { [0]= string(1) "1" [1]= string(1) "2" [2]= string(1) "3" } }
3、php執(zhí)行代碼
4、模板查詢標(biāo)簽
本類型需要有CMS模板標(biāo)簽的使用經(jīng)驗,直接寫標(biāo)簽代碼返回結(jié)果
例如調(diào)用news模塊全部數(shù)據(jù):
{module module=news} 或者 {list action=module module=news}
模板標(biāo)簽只能寫一段,不能寫多段
通過以上的list查詢方法可調(diào)用循環(huán)標(biāo)簽的全部數(shù)據(jù),當(dāng)然你可以對結(jié)果進(jìn)行格式化處理,使用回調(diào)方法。
5、自定義模板標(biāo)簽
本類型需要有CMS模板標(biāo)簽的使用經(jīng)驗,直接寫標(biāo)簽代碼返回結(jié)果,區(qū)別于(4),本類型可以直接在標(biāo)簽里面寫賦值方法和格式化顯示,不需要寫回調(diào)方法
這里循環(huán)出news模塊的全部數(shù)據(jù),只顯示id,title,再把thumb轉(zhuǎn)換為url地址。
也可以這樣寫,原理是將輸出變量賦值給$api數(shù)組:
{module module=news} {php $api[$key]['id']=$t['id'];} {php $api[$key]['title']=$t['title'];} {php $api[$key]['thumb']=dr_thumb($t['thumb'], 200,200);} {/module}
以上語法格式為:
6、自定義PHP代碼
本類型需要有PHP的開發(fā)使用經(jīng)驗,直接將php業(yè)務(wù)代碼寫進(jìn)去
$api變量為直接返回,例如:
$api = '我的自定義返回變量值';
返回截圖如下:
也可以自定義強(qiáng)制返回
$api = '我的自定義返回變量值'; PhpcmfService::C()-_json(1, '我的返回腳本成功了', $api); // 成功寫法 PhpcmfService::C()-_json(0, '我的返回腳本失敗了'); // 失敗寫法
查看一下代碼:
?php
//?獲取表單提交值
$student_id?=?intval(trim($_POST['student_id']));
//?頁面表單??可以放單獨(dú)的html文件中,如果放單獨(dú)的html頁面中?form?的action的地址要改成下面的PHP文件名
echo?'form?action=""?method="post"
input?type="text"?name="student_id"?value="{$student_id}"/
input?type="submit"?name="submit"?value="查詢"/
/form';
//?當(dāng)有數(shù)據(jù)提交時
if?($student_id)
{
$con=?mysql_connect("localhost","root","111")?or?die("連接錯誤");
mysql_select_db("examination",$con);
//?查詢
$sql?=?"SELECT?*?FROM?tablename?WHERE?student_id?=?$student_id?";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
//?輸出
echo?'學(xué)號:'.$row['student_id'].'br姓名:'.$row['name'].'br性別:'.$row['gender'].'br分?jǐn)?shù):'.$row['score'];
}
?
smarty如何實(shí)現(xiàn)這樣的功能呢,希望高手給點(diǎn)思路哦{smarty:list cid=10 row=8 ordering=pubdate}{$list.title}{/smarty}讀取文章列表 cid??欄目ID是10 row 顯示8行 pudate 按照發(fā)布時間排序
你是想說百度的實(shí)時搜索那樣的功能嗎?
百度不是用datalist,是根據(jù)輸入的關(guān)鍵詞用AJAX技術(shù)到服務(wù)器端拿到這個關(guān)鍵詞相關(guān)的熱門搜索再放到一個普通的ul下面,用li循環(huán)出來的
而且datalist這個標(biāo)簽很多瀏覽器不兼容,不建議使用
網(wǎng)站標(biāo)題:Php自定義查詢數(shù)據(jù)標(biāo)簽 php實(shí)現(xiàn)簡單的查詢功能
文章來源:http://chinadenli.net/article10/hepcgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、面包屑導(dǎo)航、品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、移動網(wǎng)站建設(shè)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)