站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
WordPress自定义查询语句
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
==自定义存档== 这部分我们仍然以地域标签插件为例。首先假设我们需要用插件来激活类似于www.example.com/blog?geostate=oregon形式的自定义永久链接,让WordPress查找与“oregon”州名相符合的日志并显示在页面上。 要实现以上效果,插件必须进行以下操作: 将“geostate”添加到WordPress能够识别的查询变量列表(query_vars过滤器函数),以确保WordPress解析URL时,州名被保存在查询变量中。下面是操作方法: add_filter('query_vars', 'geotag_queryvars' ); function geotag_queryvars( $qvars ) { $qvars[] = 'geostate'; return $qvars; } 查找到“geostate”查询变量时执行正确的查询;过程与之前提到的自定义查询相似。唯一的区别在于,这里用测试来判断“geostate”查询变量是否被探测到,而不是判断is_search或者posts_where以及其它各种数据库查询过滤器函数。用下面代码来代替上个例子中的if( is_search() ) 语句: global $wp_query; if( isset( $wp_query->query_vars['geostate'] )) { // modify the where/join/groupby similar to above examples } 插件可能还需要生成这些永久链接。例如,插件可能有一个叫做geotags_list_states的函数,该函数能够查找出地域标签表中的各个州名,并为这些州名生成链接: function geotags_list_states( $sep = ", " ) { global $geotag_table, $wpdb; // find list of states in DB $qry = "SELECT geotag_state FROM $geotag_table " . " GROUP BY geotag_state ORDER BY geotag_state"; $states = $wpdb->get_results( $qry ); // make list of links $before = '<a href="' . get_bloginfo('home') . '?geostate='; $mid = '">'; $after = "</a> "; $cur_sep = ""; foreach( $states as $row ) { $state = $row->state; echo $cur_sep . $before . rawurlencode($state) . $mid . $state . $after; // after the first time, we need separator $cur_sep = $sep; } } ===自定义存档的永久链接=== 如果网站/博客管理员没有已激活的非默认[[永久链接]],我们可以延续上一个例子(自定义存档)的内容,激活 example.com/[[blog]]/geostate/oregon,这样可以列出所有标有“Oregon”[[标签]]的日志。首先我们需要在WordPress的重写规则中加入一些内容,告诉WordPress如何解析永久链接类型的URL。具体来说,我们要添加一个能够告诉WordPress怎样解析/geostate/oregon 与?geostate=oregon的重写规则。(重写过程参见查询语句概览。) 实际定义一个新的重写规则可以分两步: #用init过滤器函数“清理”缓存的重写规则,迫使WordPress重新计算重写规则 #计算重写规则时,用generate_rewrite_rules动作还属来添加新规则: add_action('init', 'geotags_flush_rewrite_rules'); function geotags_flush_rewrite_rules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } 生成新规则相对复杂。首先,重写规则是一个关联数组,数组的关键字是能够匹配永久链接URL的正则表达式,而数组值则是相应非永久链接类型的URL。因此,要定义一个能与/geostate/oregon类似URL(其中oregon可以换成其它任意州名)相匹配的重写规则,并且告诉WordPress与?geostate=oregon相对应,我们需要进行以下操作: add_action('generate_rewrite_rules', 'geotags_add_rewrite_rules'); function geotags_add_rewrite_rules( $wp_rewrite ) { $new_rules = array( 'geostate/(.+)' => 'index.php?geostate=' . $wp_rewrite->preg_index(1) ); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; }
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)