我不完全清楚你到底在找什么。但据我估计,这可能会帮助你朝着正确的方向前进。
我认为您需要的是一个URL重写,这样您就可以有一个URL端点来显示您的数据。如果使用正确的条件逻辑,则可以避免404并显示错误消息。
首先,您需要告诉WP[对象ID]是一个查询参数。例如,我们将调用该变量$my_object_id
(我会确保在“object\\u id”之前有一些前缀,以避免与其他不太详细的变量名发生潜在的名称冲突)。
添加您的;对象ID“;作为可以在URL中使用的自定义查询变量,请使用query_vars
过滤器:
function my_object_id_query_var( $vars ) {
$vars[] = \'my_object_id\';
return $vars;
}
add_filter( \'query_vars\', \'my_object_id_query_var\' );
现在你可以用
get_query_var()
:
$object_id = get_query_var( \'my_object_id\' );
所以现在您希望能够在URL中使用它。使用
add_rewrite_rule()
要将这些添加到可能的permalink结构中,请执行以下操作:
function my_object_id_rewrite_tag_rule() {
add_rewrite_rule( \'^my_object_id/([^/]*)/?\', \'index.php?my_object_id=$matches[1]\',\'top\' );
}
add_action( \'init\', \'my_object_id_rewrite_tag_rule\' );
请注意,您可能需要刷新永久链接设置-只需重新保存现有设置即可。
然后,如果对象ID值为;some\\u id“;,您应该可以从如下url获取:
https://example.com/objects/details/my_object_id/{actual_object_id}/
请注意,这个答案可能需要您进行一些额外的修补-它不会直接从盒子里飞出来。但我认为添加重写规则是你的方向。希望这有帮助。
Update:
根据评论,我认为以下内容可能更接近您需要使用的内容:
// Adding the id var so that WP recognizes it
function SH_insert_query_vars( $vars ) {
array_push( $vars, \'SH_objekt_id\' );
return $vars;
}
add_filter( \'query_vars\', \'SH_insert_query_vars\' );
// define rewrite rule
function SH_objekt_id_rewrite_tag_rule() {
add_rewrite_rule( \'^SH_objekt_id/([^/]*)/?\', \'index.php?page_id=860&SH_objekt_id=$matches[1]\', \'top\' );
}
add_action( \'init\', \'SH_objekt_id_rewrite_tag_rule\' );
那么URL将是:
https://example.com/objects/details/SH_objekt_id/{actual_object_id_value}/
(请注意URL中如何使用查询变量)
现在,在模板中,以下内容应选择对象ID值:
$object_id = get_query_var( \'SH_objekt_id\' );
Update #2 (what ended up working for the OP after working out the details):
用户需要更改特定URL的某些详细信息。为了便于阅读代码,注释中注明了这些内容,并在此处进行了总结。
// Adding the id var so that WP recognizes it
function SH_insert_query_vars( $vars ) {
array_push( $vars, \'objekt_id\' );
return $vars;
}
add_filter( \'query_vars\', \'SH_insert_query_vars\' );
// define rewrite rule
function SH_objekt_id_rewrite_tag_rule() {
add_rewrite_rule( \'^vermietung/wohnobjekte/details-wohnobjekt/([^/]*)/?\', \'index.php?page_id=860&objekt_id=$matches[1]\', \'top\' );
}
add_action( \'init\', \'SH_objekt_id_rewrite_tag_rule\' );
请注意,现在需要检索查询变量
get_query_var( \'objekt_id\' )