Hello试图将作者链接从mysite/ author /用户名更改为mysite/companies/dataFromUserMetabox
我尝试了这个答案字符作者url的方法
它的工作方式更改了url,但问题是当我试图在author.php模板中获得作者id时
if ( $author_id = get_query_var( 'author' ) ) {
var_dump($author_id);
} else {
echo 'no author id';
}链接mysite/companies/dataFromUserMetabox返回false
但是链接mysite/companies/username返回作者id
默认的作者段塞--即使是新的作者基础“公司”也能工作,但是新的段塞没有用,所以我猜想把基础从作者改为公司没有什么错。
发布于 2019-02-20 10:12:52
我发现我做错了什么,我就像我提到的那样用这个部分
add_filter( 'request', 'wpse5742_request' );
function wpse5742_request( $query_vars )
{
if ( array_key_exists( 'author_name', $query_vars ) ) {
global $wpdb;
$author_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='nickname' AND meta_value = %s", $query_vars['author_name'] ) );
if ( $author_id ) {
$query_vars['author'] = $author_id;
unset( $query_vars['author_name'] );
}
}
return $query_vars;
}并使用我的自定义metabox元键在$author_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='nickname' AND meta_value = %s", $query_vars['author_name'] ) );中更改了D1中的“昵称”,成功地找到了author id并将其添加到$query_vars中。
https://wordpress.stackexchange.com/questions/329318
复制相似问题