【发布时间】:2020-09-27 09:27:18
【问题描述】:
我开发了我的第一个插件,它通过这种方法以编程方式创建一些页面:
$page_id = wp_insert_post(
array(
'comment_status' => 'close',
'ping_status' => 'close',
'post_author' => 1,
'post_title' => 'HSN Form',
'post_name' => strtolower(str_replace(' ', '-', trim('hsn-form'))),
'post_status' => 'publish',
'post_type' => 'page',
)
);
我为它设置了模板文件:
add_filter( 'page_template', 'hsn_service_form_page_template', 10, 1 );
function hsn_service_form_page_template( $page_template ){
if ( is_page( 'hsn-form' ) ) {
$page_template = plugin_dir_path(__DIR__) . 'service-form/form-template.php';
}
return $page_template;
}
在我想从 wordpress 仪表板中完全隐藏它之后,但必须通过以下方式使用:
www.example.com/hsn-form.
我可以从页面菜单中隐藏它以下代码:
add_filter( 'parse_query', 'ts_hide_pages_in_wp_admin' );
function ts_hide_pages_in_wp_admin($query) {
global $pagenow,$post_type;
$page = get_page_by_path('hsn-form');
if (is_admin() && $pagenow=='edit.php' && $post_type =='page') {
$query->query_vars['post__not_in'] = array($page->ID);
}
}
没关系,但在 Appereance->Menu 中仍然可用,您可以在其中创建导航菜单。
我搜索了它,但我找不到我的问题的完整解决方案:
- 我的插件必须创建一些可用这种方式的页面:www.example.com/hsn-form
- 我需要从管理仪表板完全隐藏此页面
- 我想为这些页面应用模板以添加一些自定义 php 代码。
所以如果有人知道它的完整解决方案,那应该很棒。 提前谢谢!
【问题讨论】:
标签: php wordpress custom-wordpress-pages wordpress-rest-api