是否在永久链接后添加额外参数? 时间:2012-05-07 作者:relm 如何在永久链接之后添加额外参数,特别是在使用自定义帖子类型的情况下?比如说http://mysite/album/record-name 是permalink。我怎样才能http://mysite/album/record-name/related 没有打开404或重定向?如果帖子不存在,WordPress似乎不会调用帖子模板。。。所以我有点不知道怎么做。 3 个回复 最合适的回答,由SO网友:fuxia 整理而成 您可以向URI添加端点来处理特殊请求。下面是一个插件的基本示例。要了解正在发生的事情,请阅读Christopher Davis\'s精彩教程A (Mostly) Complete Guide to the WordPress Rewrite API.<?php # -*- coding: utf-8 -*- /** * Plugin Name: T5 Endpoint Example * Description: Adds a permalink endpoint to posts named <code>epex</code> */ add_action( \'init\', \'t5_add_epex\' ); function t5_add_epex() { add_rewrite_endpoint( \'epex\', EP_PERMALINK ); } add_action( \'template_redirect\', \'t5_render_epex\' ); /** * Handle calls to the endpoint. */ function t5_render_epex() { if ( ! is_singular() or ! get_query_var( \'epex\' ) ) { return; } // You will probably do something more productive. $post = get_queried_object(); print \'<pre>\' . htmlspecialchars( print_r( $post, TRUE ) ) . \'</pre>\'; exit; } add_filter( \'request\', \'t5_set_epex_var\' ); /** * Make sure that \'get_query_var( \'epex\' )\' will not return just an empty string if it is set. * * @param array $vars * @return array */ function t5_set_epex_var( $vars ) { isset( $vars[\'epex\'] ) and $vars[\'epex\'] = true; return $vars; } SO网友:Milo 您可以使用Rewrite API\'sadd_rewrite_endpoint:add_action( \'init\', \'wpse51444_endpoint\' ); function wpse51444_endpoint(){ add_rewrite_endpoint( \'related\', EP_ALL ); } add_filter( \'query_vars\', \'wpse51444_query_vars\' ); function wpse51444_query_vars( $query_vars ){ // add related to the array of recognized query vars $query_vars[] = \'related\'; return $query_vars; } 在模板中,您可以检测相关查询变量何时存在:if( array_key_exists( \'related\' , $wp_query->query_vars ) ): // current request ends in related endif; SO网友:T.Todua 到add parameter to post url (permalink),我这样使用:add_filter( \'post_type_link\', \'append_query_string\', 10, 2 ); function append_query_string( $url, $post ) { return $url.\'?my_pid=\'.$post->ID; } 输出:http://yoursite.com/pagename?my_pid=12345678 结束 文章导航