无法使用 post 保存查询变量
Unable to save Query Vars with a post
我正在尝试将查询变量保存到 post 以供以后检索。
我正在使用这种格式的永久链接:domain.com/%category%/%postname%/
示例:
我创建了一个关注页面
domain.com/page-003/
我将名为 email 的查询变量添加到页面
add_query_arg('email', 'test@abc.com', 'domain.com/page-003/')
现在我打电话给
get_permalink($post_id);
我明白了
domain.com/page-003/
而不是
domain.com/page-003/?email=test@abc.com
我错过了什么?查询变量不是用 post 保存的吗?
您想保存一些稍后要恢复的元数据并将其作为查询参数添加到 URL 中。
您需要先将其保存为 post_meta,例如当您使用该数据保存 post 时。您使用:
<?php update_post_meta(get_the_ID(), 'email_address', 'abc@mail.com'); ?>
更多详情:https://codex.wordpress.org/Function_Reference/update_post_meta
然后在检索过程中,你可能会在template_redirect或更早的post之前挂入一个HOOK你可以得到post_meta来获取电子邮件然后添加到查询参数:
<?php $email = get_post_meta( get_the_ID(), 'email_address' ); ?>
然后
esc_url( add_query_arg( 'email', $email, get_permalink( get_the_ID() ) ) );
类似的东西,代码未经测试,我只是写在这里,你可以阅读上面使用的每个函数的codex中的详细文档。
更新: 如何 update/fill 来自元值的 Ninja 表单字段:
add_filter( 'ninja_forms_render_default_value', 'wm_the_value' , 10 , 3);
function wm_the_value( $default_value, $field_type, $field_settings ) {
if( 'textbox' == $field_type && in_array('ref' , $field_settings)){
$default_value = get_post_meta(get_the_ID(),'_listing_mls', true);
}
return $default_value;
}
'ref' 是 Ninja 形式的字段名称。
'_listing_mls' 是来自 WP 数据库的 meta_key 名称。
希望对你有用。
我正在尝试将查询变量保存到 post 以供以后检索。
我正在使用这种格式的永久链接:domain.com/%category%/%postname%/
示例:
我创建了一个关注页面
domain.com/page-003/
我将名为 email 的查询变量添加到页面
add_query_arg('email', 'test@abc.com', 'domain.com/page-003/')
现在我打电话给
get_permalink($post_id);
我明白了
domain.com/page-003/
而不是
domain.com/page-003/?email=test@abc.com
我错过了什么?查询变量不是用 post 保存的吗?
您想保存一些稍后要恢复的元数据并将其作为查询参数添加到 URL 中。
您需要先将其保存为 post_meta,例如当您使用该数据保存 post 时。您使用:
<?php update_post_meta(get_the_ID(), 'email_address', 'abc@mail.com'); ?>
更多详情:https://codex.wordpress.org/Function_Reference/update_post_meta
然后在检索过程中,你可能会在template_redirect或更早的post之前挂入一个HOOK你可以得到post_meta来获取电子邮件然后添加到查询参数:
<?php $email = get_post_meta( get_the_ID(), 'email_address' ); ?>
然后
esc_url( add_query_arg( 'email', $email, get_permalink( get_the_ID() ) ) );
类似的东西,代码未经测试,我只是写在这里,你可以阅读上面使用的每个函数的codex中的详细文档。
更新: 如何 update/fill 来自元值的 Ninja 表单字段:
add_filter( 'ninja_forms_render_default_value', 'wm_the_value' , 10 , 3);
function wm_the_value( $default_value, $field_type, $field_settings ) {
if( 'textbox' == $field_type && in_array('ref' , $field_settings)){
$default_value = get_post_meta(get_the_ID(),'_listing_mls', true);
}
return $default_value;
}
'ref' 是 Ninja 形式的字段名称。 '_listing_mls' 是来自 WP 数据库的 meta_key 名称。
希望对你有用。