在请求打开某个内容的时候,WordPress 会根据请求的地址,查询出相应的内容,然后根据模板文件的设计,输出相应的内容。下面我们可以先来理解一下 ...
打开这个页面的模板文件 ....
WordPress 会把查询到的东西放在 $wp_query 这个东西里面。我们可以使用 print_r ,来输出这个东西里的内容 ...
先输入一组 <pre> 标签 ... 这组标签可以保留输出的内容的格式 ... 在它的里面再输入 <?php print_r( $wp_query ); ?> ,注意 wp_query 都是小写的字母 ...
保存一下 ... 回到相关内容这个页面 ... 刷新 ... 在页面上会显示出 $wp_query 里面的所有的东西 ...
[query] 这里,会显示我们当前请求的查询参数 ... 你会看到 [pagename],也就是我们请求的页面的名称是 related ... 这个名称是我们在创建这个页面的时候定义的 ...
它的意思就是,我们现在要看的,是一个叫 related 的一个页面。
在 [query_vars] ,查询参数这里 ,会显示相关的参数 ... 再往下看 ... 还有一些根据查询参数里的值,查询到的相应的内容 ...
在模板文件里,我们可以使用代码来获取到这些查询参数 ... 比如我们要获取页面名称这个查询参数 ...
回到模板文件 ...
页面名称:<?php echo $wp_query->query_vars[ 'pagename' ]; ?>
这行代码的意思是,输出 $wp_query下面的 pagename 这个查询参数 ... 保存 .. 回到前台页面 ... 刷新 ..
你会看到,在页面上会显示出 pagename 查询参数里的值 ...
下面我们可以关掉网站的友好地址功能再看一下 ... 打开网站的管理后台 ... 点击 设置 ... 固定链接 ... 选择 默认 . 保存 ..
再回到前台页面 ... 先点一下 首页 ... 再打开 相关内容 这个页面 ..
页面的地址会不一样了,刚才是 related ... 现在是 ?page_id=xxx ...
再看一下查询参数 ... 刚才的查询参数是 pagename ,也就是根据页面的名称来显示内容 .. 而现在的查询参数是 page_id ,也就是根据页面的 ID 来显示相应的内容 ...
回到页面的模板文件... 如果你想获取并输出 page_id 这个查询参数 ... 我们可以把这个 pagename 改成 page_id ...
或者我们也可以试一下 WordPress get_query_var() 函数 ... 页面ID:<?php echo get_query_var( 'page_id' ); ?> ... 保存 ...
回到前台页面 ... 刷新 ... 你会看到当前的查询参数 page_id 会显示在页面上 ...
我们同样可以使用 pagename 查询参数来输出这个页面的内容 ... 先去掉地址里的 page_id=xxx
然后换成 ?pagename=related .... 回车 ... 仍然会显示相关内容这个页面 ... 现在查询参数又变成了 pagename ...
在地址里,我们也可以去添加多个查询的参数 ... 在这个 ?pagename=related后面 ... 使用 & 符号连接不同的查询参数 ... 再输入查询的参数的名称 page_id ... 然后在等号后面,输入参数的值 ... xxx
回车 ... 因为我们请求的这两个参数,都是相关内容这个页面,所以这里仍然会显示这个页面 ...
不过在查询的参数里,你会同时看到两个这两个参数 ... 页面的名称 ... 还有 页面的 ID ...