我想检查任何页面或帖子的帖子类型, 并根据帖子类型显示一些功能。因此, 我在functions.php中使用了一个函数, 该函数在管理页面而非主题页面中使用时会返回帖子类型。
如果帖子类型是页面, 我需要此功能包括一个php文件。因此, 它必须在系统范围内工作(如果可能)。在模板中, 管理, 编辑和发布页面。
这是我正在使用的功能:
function vart_current_post_type() {
global $post, $typenow, $current_screen;
if ( $post &
&
$post->
post_type ) {
return $post->
post_type;
}elseif ( isset( $_GET[ 'post' ] ) ) {
return get_post_type( $_GET[ 'post' ] );
}elseif ( $typenow ) {
return $typenow;
}elseif ( $current_screen &
&
$current_screen->
post_type ) {
return $current_screen->
post_type;
}elseif ( isset( $_REQUEST[ 'post_type' ] ) ) {
return sanitize_key( $_REQUEST[ 'post_type' ] );
}return null;
}add_action( 'init', 'vart_current_post_type' );
请告诉我该怎么做才能使其在主题模板和页面上起作用?
【如何获得当前的post类型在functions.php中以便全局使用()】谢谢。
#1有一种本机方法可以找出当前的帖子类型:https://developer.wordpress.org/reference/functions/get_post_type/
$post_type = get_post_type();
#2在init钩子上, 尚未填充$ post对象。
有关WP挂钩(操作)执行的信息, 请参见此文件。如你所见, 帖子在init之后很晚才被选中。更准确地说, 即使请求是在初始化钩子之后进行解析的。因此, 恐怕没有简单的方法可以在初始化操作中获取帖子类型。
使用wp挂钩, 你可以使用函数获取帖子类型。
推荐阅读
- Spark StreamingSpark Day10(Spark Streaming 学习笔记)
- 如何使另一个woocommerce CSS主题放入我的主主题()
- 如何在WordPress中强制使用https
- 如何强制wp_enqueue_style在head标签的最底部显示CSS以覆盖所有CSS规则()
- 如何修复wordpress中丢失的运输错误()
- 如何修复插件的CSS()
- 如何使用Postmeta和图像导出自定义帖子类型详细信息
- 如何查找和修改WordPress的内容短于n个字符,并且由一个换行符之前和之后,里面的字符串()
- 登录WordPress后如何查找访问的第一个URL用户