Создаем страницу “Общие настройки”(obshhie-nastrojki).
В коде нужно заменить “Общие настройки” на свое название страницы.
URL страницы “obshhie-nastrojki” на свой.
ID 404 на свой.
Добавляем код в functions.php
// добавляем страницу общих полей
function hide_settings_page($query) {
if ( !is_admin() && !is_main_query() ) {
return;
}
global $typenow;
if ($typenow === "page") {
$settings_page = get_page_by_path("obshhie-nastrojki",NULL,"page")->ID;
$query->set( 'post__not_in', array($settings_page) );
}
return;
}
add_action('pre_get_posts', 'hide_settings_page');
function add_site_settings_to_menu(){
add_menu_page( 'Общие настройки', 'Общие настройки', 'manage_options', 'post.php?post='.get_page_by_path("obshhie-nastrojki",NULL,"page")->ID.'&action=edit', '', 'dashicons-admin-tools', 20);
}
add_action( 'admin_menu', 'add_site_settings_to_menu' );
add_filter('parent_file', 'higlight_custom_settings_page');
function higlight_custom_settings_page($file) {
global $parent_file;
global $pagenow;
global $typenow, $self;
$settings_page = get_page_by_path("obshhie-nastrojki",NULL,"page")->ID;
if (isset($_GET["post"])) {
$post = (int)$_GET["post"];
if ($pagenow === "post.php" && $post === $settings_page) {
$file = "post.php?post=$settings_page&action=edit";
}
}
return $file;
}
function custom_acf_shortcode($atts) {
$atts = shortcode_atts(array(
'field_name' => '', // Название поля ACF
'post_id' => null, // ID записи
), $atts);
// Если ID записи не указан, используем текущую запись
if (empty($atts['post_id'])) {
$atts['post_id'] = 404;
}
// Получаем значение кастомного поля ACF
$field_value = get_field($atts['field_name'], $atts['post_id']);
return $field_value;
}
add_shortcode('custom_acf', 'custom_acf_shortcode');
// добавляем странице noindex для запрета индексации поисковиками
function hide_settings_page_from_robots() {
if (is_page('obshhie-nastrojki')) {
echo '<meta name="robots" content="noindex, nofollow">';
}
}
add_action('wp_head', 'hide_settings_page_from_robots');
// редирект на главную если кто-то попытается попасть на эту страницу
function redirect_from_settings_page() {
if (is_page('obshhie-nastrojki')) {
wp_redirect(home_url());
exit;
}
}
add_action('template_redirect', 'redirect_from_settings_page');
obshhie-nastrojki –
добавляем