Фильтр WordPress для остановки рендеринга сайта - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть сайт WordPress, на котором есть контент (страницы), который я запрашиваю через REST API. Однако я не хотел бы отображать страницы по фактическому URL-адресу WordPress.

Я смутно помню, что есть функция, которую я могу добавить к фильтру в моих функциях. php, чтобы предотвратить рендеринг, не делая частный контент (я все еще хочу, чтобы REST API был общедоступным). Кто-нибудь знает способ сделать это?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Мне кажется, я нашел достаточно простое решение, которым я доволен:

function private_site() {
    wp_die('No page found.', 404);
}

add_action( 'template_redirect', 'private_site' );
0 голосов
/ 01 апреля 2020

Возможно, что-то вроде перехода вашего сайта в режим Режим обслуживания ожидается для пользователей с указанными ролями ?

Если это так, просто добавьте этот фрагмент в свой функций. php


function disable_my_site() {
  // check if the current logged in user has a specified role like edit_theme_options.
  // Or no user is logged in. See all roles in the link above.
  if( !current_user_can('edit_theme_options') || !is_user_logged_in() ) {
    wp_die('Add some message to show if you like. HTML is accepted.');
  }
}
add_action('get_header', 'disable_my_site', 999);

// Add this if you like to disable REST API too
add_action( 'rest_api_init', 'disable_my_site', 999 );

Аналогичным образом, обратите внимание, что вы можете отключить все или определенные c страницы или сообщения в блоге и т.д. c ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...