如果is_admin()-模板未显示,是否需要自定义帖子类型?

时间:2013-01-03 作者:Pipo

在我的功能中。php如果我以管理员身份登录,我需要注册自定义帖子类型的php文件。

if (is_admin())
    require_once(TEMPLATEPATH . \'/custom-post-types/cpt.php\');
这非常有效,只是加载了错误的模板。而不是single-{cpt}.php 这个index.php 被使用了。如果我删除if (is_admin()) 一切正常,但自定义帖子类型对于每个非管理员都是可见的。

我怎样才能解决这个问题?

1 个回复
SO网友:s_ha_dum

如果未注册CPT,则索引。将使用php,如果您只注册CPTfor the backend, 这是什么is_admin 检查,然后index.php 几乎总是会被使用。

换句话说,您只是在后端注册您的CPT,而不是在前端注册。这种方式永远不会正常工作。

你做错的根本就是误解了is_admin 作用

我想你需要的是current_user_can 但你不会想在那个开关上注册帖子类型,否则我想你不会。这可能也会导致不必要的行为,但当然欢迎您尝试。也许有点像。。。

function hide_cpt($content) {
  global $post; // might not be necessary
  if (\'your-post-type-name\' == $post->post_type && current_user_can(\'administrator\')) {
   return \'You can\\\'t look at this\';
  }
  return $content;
}
add_filter(\'the_content\',\'hide_cpt\');
但很难说这是否会满足你的要求。你的描述没有太多细节。

结束

相关推荐

获取WordPress-admin中正在使用的模板

我想在使用当前编辑的帖子(\\u type)/页面的主题中获取模板。假设我正在编辑一篇文章,然后我想使用模板检索它single.php如果我正在编辑一个自定义的帖子类型single-{post_type}.php 我想重温一下。我如何存档?是否存在存储此信息的全局变量?我知道pages会将其保存为meta\\u数据。我没有mutch,但我一直在寻找get_query_template 和locate_template 但我需要正确的方向。谢谢