在我的功能中。php如果我以管理员身份登录,我需要注册自定义帖子类型的php文件。
if (is_admin())
require_once(TEMPLATEPATH . \'/custom-post-types/cpt.php\');
这非常有效,只是加载了错误的模板。而不是single-{cpt}.php
这个index.php
被使用了。如果我删除if (is_admin())
一切正常,但自定义帖子类型对于每个非管理员都是可见的。我怎样才能解决这个问题?
在我的功能中。php如果我以管理员身份登录,我需要注册自定义帖子类型的php文件。
if (is_admin())
require_once(TEMPLATEPATH . \'/custom-post-types/cpt.php\');
这非常有效,只是加载了错误的模板。而不是single-{cpt}.php
这个index.php
被使用了。如果我删除if (is_admin())
一切正常,但自定义帖子类型对于每个非管理员都是可见的。我怎样才能解决这个问题?
如果未注册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\');
但很难说这是否会满足你的要求。你的描述没有太多细节。我想在使用当前编辑的帖子(\\u type)/页面的主题中获取模板。假设我正在编辑一篇文章,然后我想使用模板检索它single.php如果我正在编辑一个自定义的帖子类型single-{post_type}.php 我想重温一下。我如何存档?是否存在存储此信息的全局变量?我知道pages会将其保存为meta\\u数据。我没有mutch,但我一直在寻找get_query_template 和locate_template 但我需要正确的方向。谢谢