关于你的主题是如何设置的,我有几个假设:
您有两个文件:索引。php。这是开始执行的文件the loop.内容。php。这是通用内容模板所在的文件您熟悉的get_template_part(). 如果没有,则很容易实现例如,我的系统中有两个用户,每个用户都由“admin”和“user”标识
此时,我们将创建第二个模板,用于显示特定作者的内容。在主题目录的根目录中,添加一个新的模板文件-该文件将用于呈现特定作者的内容。
假设您的基本模板文件是content.php,
添加content-user.php.
您可以向该文件添加任何您想要的内容-一个好的开始可能是复制和粘贴内容content.php.
请注意,新模板的名称并不重要,但更清楚一些,因为它将由名为“user”的作者呈现内容
接下来,跳到你的index.php
归档并定位循环。很可能它看起来像这样:
while( have_posts() ) : the post();
get_template_part( \'content\', get_post_format() );
endwhile;
如果您的主题不支持帖子格式和/或您使用的是如上所述的标准include文件,它可能会如下所示:
while( have_posts() ) : the post();
include_once( \'content.php\' )
endwhile;
为了回答这个问题,我将使用第一个示例。这是在内容中包含不同模板文件的最佳做法。
此时,我们需要设置一个检查,以包含基于用户的模板。我将设置我的循环,为“用户”编写的所有文章显示一个模板,并为“管理员”和其他任何人编写的所有文章显示一个单独的模板:
while( have_posts() ) : the post();
if( get_the_author() == \'user\' ):
get_template_part( \'content-user\', get_post_format() );
else:
get_template_part( \'content\', get_post_format() );
endif;
endwhile;
代码应该足够容易阅读,但要清楚:
首先,我们正在检查当前帖子的作者,如果作者是“用户”,那么我们将使用我们创建的第二个模板,否则,我们将使用默认模板。您的里程数可能会根据主题设置而有所不同,但要利用get_the_author() 函数可以帮助您动态选择模板。
Update Based on Answer Comment
您可以使用
get_the_author_meta.
在没有看到更多代码的情况下,我无法确定主题是如何设置的,但如果必须根据您提供的代码进行猜测,我建议尝试以下操作:
$post = $wp_query->post;
if(get_the_author_meta(\'user_nicename\', $post->post_author) == \'user\') {
/* Do your author-specific work */
} else {
if ( in_category(\'4\') || in_category(\'59\') ) {
include(TEMPLATEPATH . \'/review-post.php\');
} elseif (in_category(\'5\')) {
include(TEMPLATEPATH . \'/promo-post.php\');
} else {
include(TEMPLATEPATH . \'/regular-post.php\');
}
}