File: //proc/1526/cwd/delta/wp-content/plugins/delta-site-plugin/index.php
<?php
/*
Plugin Name: Delta Site Plugin
Description: Site plugin for Delta Reality website containing custom post types, custom fields and specific features
Version: 1.0
Author: Borealis
Text Domain: delta
*/
if(!defined('ABSPATH')){
    exit; // Exit if accessed directly
}
if(file_exists(__DIR__ . '/acf-block-creation/index.php')){
    require_once __DIR__ . '/acf-block-creation/index.php';
}
// Register new post types and taxonomies
add_action( 'init', function(){
    register_post_type('delta_project', array(
        'labels' => array(
            'name' => __('Projects', 'delta'),
            'singular_name' => __('Project', 'delta'),
        ),
        'public' => true,
        'show_in_menu' => true,
        'show_in_rest' => true,
        'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', ),
        'has_archive' => true,
        "map_meta_cap" => true,
        "rewrite" => array("slug" => "project")
    ));
    register_taxonomy( 'delta_project_category', 'delta_project', array(
        'labels' => array(
            'name'          => __('Categories', 'delta'),
            'singular_name' => __('Category', 'delta'),
            'add_new_item'  => __('Add New Category', 'delta'),
            'edit_item'     => __('Edit Category', 'delta'),
            'new_item'      => __('New Category', 'delta'),
            'view_item'     => __('View Category', 'delta'),
            'view_items'    => __('View Categories', 'delta'),
            'search_items'  => __('Search Categories', 'delta'),
            'not_found'     => __('No Categories found', 'delta'),
            'all_items'     => __('All Categories', 'delta')
        ),
        'hierarchical' => true,
        'show_in_rest' => true
    ));
    register_taxonomy( 'delta_project_type', 'delta_project', array(
        'labels' => array(
            'name'          => __('Types', 'delta'),
            'singular_name' => __('Type', 'delta'),
            'add_new_item'  => __('Add New Type', 'delta'),
            'edit_item'     => __('Edit Type', 'delta'),
            'new_item'      => __('New Type', 'delta'),
            'view_item'     => __('View Type', 'delta'),
            'view_items'    => __('View Types', 'delta'),
            'search_items'  => __('Search Types', 'delta'),
            'not_found'     => __('No Types found', 'delta'),
            'all_items'     => __('All Types', 'delta')
        ),
        'hierarchical' => true,
        'show_in_rest' => true
    ));
    register_taxonomy( 'delta_project_branch', 'delta_project', array(
        'labels' => array(
            'name'          => __('Branches', 'delta'),
            'singular_name' => __('Branch', 'delta'),
            'add_new_item'  => __('Add New Branch', 'delta'),
            'edit_item'     => __('Edit Branch', 'delta'),
            'new_item'      => __('New Branch', 'delta'),
            'view_item'     => __('View Branch', 'delta'),
            'view_items'    => __('View Branches', 'delta'),
            'search_items'  => __('Search Branches', 'delta'),
            'not_found'     => __('No Branches found', 'delta'),
            'all_items'     => __('All Branches', 'delta')
        ),
        'hierarchical' => true,
        'show_in_rest' => true
    ));
});
// Add site settings to admin menu
add_action( 'acf/init', function(){
    if( function_exists('acf_add_options_page') ) {
         acf_add_options_page(array(
            'page_title' => __( 'Site settings', 'delta' ),
            'menu_title' => __( 'Site settings', 'delta' ),
            'menu_slug'  => 'site-settings',
            'capability' => 'manage_options'
        ));
    }
});
// Save ACF fields in JSON
add_filter('acf/settings/save_json', 'delta_acf_json_save_point');
function delta_acf_json_save_point( $path ) {
    // update path
    $path = plugin_dir_path(__FILE__) . 'acf-json';
    return $path;
}
// Load ACF fields from JSON
add_filter('acf/settings/load_json', 'delta_acf_json_load_point');
function delta_acf_json_load_point( $paths ) {
    // remove original path (optional)
    unset($paths[0]);
    // append path
    $paths[] = plugin_dir_path(__FILE__) . 'acf-json';
    return $paths;
}
// Register ACF Blocks
add_action( 'init', 'register_my_acf_blocks' );
function register_my_acf_blocks(){
    if ( ! function_exists( 'register_block_type' ) ) {
        return;
    }
    $directories = glob(get_template_directory() . '/templates/acf-blocks/*' , GLOB_ONLYDIR);
    foreach($directories as $dir){
        register_block_type($dir);
    }
}
// Register new category for our elements only
add_filter( 'block_categories_all' , function( $categories ) {
    // Adding a new category.
	$categories[] = array(
		'slug'  => 'delta-elements',
		'title' => 'Delta'
	);
	return $categories;
} );
add_filter( 'wpseo_meta_author', '__return_false' );
// Remove annoying 301 Redirects pointer in wp-admin
add_action('admin_enqueue_scripts', function() {
  wp_add_inline_script('jquery', "
    jQuery(function($) {
      const observer = new MutationObserver(() => {
        const pointer = $('#wp-pointer-0:contains(\"301 Redirects\")');
        if (pointer.length) {
          pointer.remove();
          observer.disconnect();
        }
      });
      observer.observe(document.body, { childList: true, subtree: true });
    });
  ");
});