我搜索过,没发现此问题已经发布过 .
在每个帖子的顶部显示元数据,包括作者,输入日期,更新日期和分类 . 其中每个还包括一个网址 . 我想显示元数据但删除链接 . 我找到了php文件并成功修改它以达到预期的效果 . 我需要帮助的是如何在我的子主题中进行这些修改,以便在主题更新后不会覆盖更改 .
我一直试图从他们的github帐户上获得主题发布者的一些指导,但到目前为止还没有回复 .
Customizr免费版4.0.11
以下是详细信息:
我找到了php文件:core / front / models / content / post-metas / class-model-post_metas.php
我能够找到并修改将url链接插入author-meta元素的函数部分 . 请注意,以下示例仅从作者元标记中删除链接 . 对其他元件进行了类似的修改 . 这是一个私有函数,所以我认为我不能从functions.php中调用它 .
我对名为czr_fn_get_meta_author()的函数进行了更改
private function czr_fn_get_meta_author() {
$author_id = null;
if ( is_single() )
if ( ! in_the_loop() ) {
global $post;
$author_id = $post->post_author;
}
return apply_filters(
'tc_author_meta',
sprintf( '<span class="author vcard author_name"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>' ,
esc_url( get_author_posts_url( get_the_author_meta( 'ID', $author_id ) ) ),
esc_attr( sprintf( __( 'View all posts by %s' , 'customizr' ), get_the_author_meta( 'display_name', $author_id ) ) ),
get_the_author_meta( 'display_name', $author_id )
)
);//end filter
}
这是修改后的版本:
private function czr_fn_get_meta_author() {
$author_id = null;
if ( is_single() )
if ( ! in_the_loop() ) {
global $post;
$author_id = $post->post_author;
}
return apply_filters(
'tc_author_meta',
sprintf( '<span class="author vcard author_name">%3$s</span>' ,
esc_url( get_author_posts_url( get_the_author_meta( 'ID', $author_id ) ) ),
esc_attr( sprintf( __( 'View all posts by %s' , 'customizr' ), get_the_author_meta( 'display_name', $author_id ) ) ),
get_the_author_meta( 'display_name', $author_id )
)
);//end filter
}
所以我可以弄清楚如何为entry-meta和其他人做同样的事情 . 现在我只需要知道如何在我的子主题中使这个工作,以便它不会被更新删除 .
谢谢,麻烦您了 .
1 回答
我有一个解决这个问题的潜在解决方案 . 我能够获取上面列出的'class-model-post-metas.php'文件的副本,并使用相同的目录结构将其放在我的子主题中 . 然后我修改了文件以检查帖子'author'的用户级别是否设置为subscriber . 如果是这样,我剥离了href . 否则,执行正常行为 .
这样做的原因是,当添加名为CM Answers Pro的用户论坛插件时,用户可以使用社交登录(oAuth)登录和注册 . 我在订户级别默认所有新注册 . 所以我所有的论坛参与者都是在订阅者级别 . 这首先是创造这个问题的原因 . 每次将新帖添加到论坛时,用户都会被标记为帖子的“作者” . 即使他们没有作者级别权限 .
当显示问答论坛中的单个帖子时,Customizr会为“作者”名称和输入日期设置帖子元组,包括链接 . 这些链接创建了404,因为它们是构建的,假设Q&A论坛中的每个帖子都是博客文章 .
当用户设置为订户级别时,修改下面的代码可以正确地从帖子中删除链接 . 对以下两个函数进行了修改:czr_fn_get_meta_date()和czr_fn_get_meta_author() . 您可以将其与Customizr GitHub repo上提供的原始源代码进行比较 . https://github.com/presscustomizr/customizr