Страница настроек для ACF FREE

Создаем страницу “Общие настройки”(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 –

добавляем

Содержимое
Вам может быть интересно

Скрол к блоку на странице (без перекрытия)

Маска на поле телефон

Форма Elementor

Let's work together!