我想删除分配给我刚刚开始的网站的特定类别的帖子的作者和日期。我认为以下添加到我的自定义主题的function.PHP文件就可以了。该类别的名称是“基金”,对于未分配此类别的所有其他帖子,我希望保留作者和日期信息。
if (is_category('Funds')) {
remove_action('genesis_before_post_content', 'genesis_post_info');
}
此代码似乎对网站没有影响,所有帖子都会继续显示作者和日期信息。
有什么想法吗?
答案 0 :(得分:2)
尝试此操作,但将“推荐”替换为“基金”。注意我还定制了从帖子信息返回到不显示任何帖子类别的作者等。以下代码将有效删除任何具有“推荐”类别的帖子的发布日期,以及其他任何帖子类别的发布日期。
/** Customize the post info function */
add_filter( 'genesis_post_info', 'post_info_filter' );
function post_info_filter($post_info) {
if (!is_category('Testimonials')) {
$post_info = '[post_date]'; // removed by [post_author_posts_link] at [post_time] [post_comments] [post_edit]
return $post_info;
}}
以上代码放在您的子主题functions.php
中答案 1 :(得分:1)
如果您将代码 as-is 放入主题的functions.php
文件中,它会过早运行; “query”将无法运行,因此WordPress还不知道您的类别。您需要从查询后运行的钩子运行代码。
假设 'genesis_post_info'
实际上是你需要的钩子,那么这段代码可能为你工作(我没有Genesis到测试以确定。)是的,您可以将此代码放入主题的functions.php
文件,因为它会延迟运行删除直到the_posts
挂钩后:
add_filter('init','yoursite_the_posts');
function yoursite_the_posts($posts) {// 'the_posts' runs immediately after the query
if ($wp_the_query === $wp_query && // If first query on a page load
is_category('Funds')) { // And if this is the Funds category
remove_action('genesis_before_post_content', 'genesis_post_info');
return $posts; // Gotta return the posts, they are expected
}
让我知道这是否有效,或者不管你遇到什么问题。
您是否考虑过将Custom Post Types用于基金,而不是将其用于邮寄?我猜你会得到更好的结果。
如果您使用自定义帖子类型,那么这些可能会帮助您主题化:
希望这有帮助。
-Mike
答案 2 :(得分:0)
首先,上面的答案对我非常有帮助,但后来我意识到对这个问题的解释可能有些偏差。所以我的答案实际上是'我'正在寻找的解决方案,但根据问题的原始意图也可能是Hamish所寻求的。
问题似乎在于是否删除“在类别中”的帖子上的作者和日期,而不是在类别的存档列表中列出的帖子。
例如,我希望(略有不同)只删除日期(不是作者)但我想在该帖子的单个帖子视图中删除日期,只要它恰好位于一个名为案例研究的类别中。所以我用了
/** Customize the post info function */
add_filter( 'genesis_post_info', 'post_info_filter' );
function post_info_filter($post_info) {
if ( in_category('case-studies') ) {
$post_info = 'By [post_author] [post_edit]'; // removed by [post_author_posts_link] at [post_time] [post_comments] [post_edit]
return $post_info;
}
else {
$post_info = '[post_date] By [post_author] [post_edit]'; // removed by [post_author_posts_link] at [post_time] [post_comments] [post_edit]
return $post_info;
}
注意我使用的是in_category而不是is_category:)
有可能Hamish实际上想要一个混合,其中类别页面上所有帖子的存档列表都不显示作者和日期,并且碰巧在相关类别中的各个帖子不显示作者和日期。
在这种情况下,上面的代码需要更复杂才能处理这两种情况。
简单修改冲突 如果您正在运行Genesis Simple Edits插件,那么该插件也将在上述函数之后打败(运行)。我还没想出自己在简单编辑之后如何/何时加入....(更新对于初学者我现在只是注释掉了这个插件的帖子信息部分,这样我就可以保持我的post_meta和页脚运行通过简单的编辑)
哦,这是通过Brian Gardner的Studio Press教程(对于这种情况来说太简单了,但可能会让Hamish开始)