我需要构建一个脱机页面,第一个想法是简单地获取所需的页面ID并执行wp\\u重定向,但这会留下一个页面的URL以重定向到。
function _action_offline_mode( $template ){
if( is_admin()){
return;
}
$offline = get_option(\'offline\',\'inactive\');
$off_page = get_option(\'off_page\',null);
if(\'active\' == $offline && !empty($off_page)){
$user = wp_get_current_user();
$allowed_roles = array(\'administrator\');
$off_page_link = get_permalink($off_page[0]);
if( !array_intersect($allowed_roles, $user->roles ) && ( get_the_ID() != $off_page[0] ) ){
wp_redirect($off_page_link,307);
exit();
}
}
}
add_action( \'template_redirect\', \'_action_offline_mode\');
浏览器中的叶子sitename.com/redirect_page_permalink
比我想做的还要多template_redirect
但这并没有覆盖实际的查询页面ID,给我留下了不需要的选项。也尝试过pre_get_posts
但无法使其正常工作。有没有人知道一种体面的方式来告诉WordPress按ID显示特定的页面without 使用自定义模板和使用内置挂钩?
例如,如果您位于ID为10的页面上,请添加函数以显示ID为80的页面及其所有选项。
请注意,在此处显示其他类似的页面内容Get the content of a specific page (by ID)
保持主查询不变,因此主查询仍将从ID为10的页面中提取所有页面数据,但我需要它按ID 80显示页面,主查询将从ID为80的页面中提取数据。
这是因为每个页面都可以有一些自定义设置,这些设置不是由页面ID拉取的,如果查询页面ID与显示的不同,我最终会有错误的选项。