_x( 'Ads', 'Post Type General Name', 'adfusion-ad-manager-and-monetization' ), 'singular_name' => _x( 'Ad', 'Post Type Singular Name', 'adfusion-ad-manager-and-monetization' ), 'menu_name' => __( 'AdFusion', 'adfusion-ad-manager-and-monetization' ), 'name_admin_bar' => __( 'Ad', 'adfusion-ad-manager-and-monetization' ), 'archives' => __( 'Ad Archives', 'adfusion-ad-manager-and-monetization' ), 'attributes' => __( 'Ad Attributes', 'adfusion-ad-manager-and-monetization' ), 'parent_item_colon' => __( 'Parent Ad:', 'adfusion-ad-manager-and-monetization' ), 'all_items' => __( 'All Ads', 'adfusion-ad-manager-and-monetization' ), 'add_new_item' => __( 'Add New Ad', 'adfusion-ad-manager-and-monetization' ), 'add_new' => __( 'Add New', 'adfusion-ad-manager-and-monetization' ), 'new_item' => __( 'New Ad', 'adfusion-ad-manager-and-monetization' ), 'edit_item' => __( 'Edit Ad', 'adfusion-ad-manager-and-monetization' ), 'update_item' => __( 'Update Ad', 'adfusion-ad-manager-and-monetization' ), 'view_item' => __( 'View Ad', 'adfusion-ad-manager-and-monetization' ), 'view_items' => __( 'View Ads', 'adfusion-ad-manager-and-monetization' ), 'search_items' => __( 'Search Ad', 'adfusion-ad-manager-and-monetization' ), 'not_found' => __( 'Not found', 'adfusion-ad-manager-and-monetization' ), 'not_found_in_trash' => __( 'Not found in Trash', 'adfusion-ad-manager-and-monetization' ), 'featured_image' => __( 'Desktop Image (Standard)', 'adfusion-ad-manager-and-monetization' ), 'set_featured_image' => __( 'Set ad image', 'adfusion-ad-manager-and-monetization' ), 'remove_featured_image' => __( 'Remove ad image', 'adfusion-ad-manager-and-monetization' ), 'use_featured_image' => __( 'Use as ad image', 'adfusion-ad-manager-and-monetization' ), 'insert_into_item' => __( 'Insert into ad', 'adfusion-ad-manager-and-monetization' ), 'uploaded_to_this_item' => __( 'Uploaded to this ad', 'adfusion-ad-manager-and-monetization' ), 'items_list' => __( 'Ads list', 'adfusion-ad-manager-and-monetization' ), 'items_list_navigation' => __( 'Ads list navigation', 'adfusion-ad-manager-and-monetization' ), 'filter_items_list' => __( 'Filter ads list', 'adfusion-ad-manager-and-monetization' ), ); $args = array( 'label' => __( 'Ad', 'adfusion-ad-manager-and-monetization' ), 'description' => __( 'Ad units for AdFusion', 'adfusion-ad-manager-and-monetization' ), 'labels' => $labels, 'supports' => array( 'title', 'thumbnail', 'revisions' ), // Standard editor removed; we use custom meta boxes for ad content/code. 'taxonomies' => array( 'adfusion_group' ), 'hierarchical' => false, 'public' => false, // Set to false so ads do not get their own single webpage on the frontend. 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 25, 'menu_icon' => 'dashicons-megaphone', // Adds a megaphone icon to the WP sidebar. 'show_in_admin_bar' => true, 'show_in_nav_menus' => false, 'show_in_admin_all_list' => true, 'can_export' => true, 'has_archive' => false, 'exclude_from_search' => true, 'publicly_queryable' => false, 'show_in_rest' => true, // Exposes ads to the REST API for future integrations. 'capability_type' => 'adfusion_ad', 'map_meta_cap' => true, 'capabilities' => array( 'edit_post' => 'edit_adfusion_ad', 'read_post' => 'read_adfusion_ad', 'delete_post' => 'delete_adfusion_ad', 'edit_posts' => 'edit_adfusion_ads', 'edit_others_posts' => 'edit_others_adfusion_ads', 'publish_posts' => 'publish_adfusion_ads', 'read_private_posts' => 'read_private_adfusion_ads', 'create_posts' => 'edit_adfusion_ads', 'delete_posts' => 'delete_adfusion_ads', 'delete_others_posts' => 'delete_others_adfusion_ads', 'edit_published_posts' => 'edit_published_adfusion_ads', 'delete_published_posts' => 'delete_published_adfusion_ads', 'delete_private_posts' => 'delete_private_adfusion_ads', ), ); register_post_type( 'adfusion_ad', $args ); // 2. Register Ad Groups (Taxonomy) for rotations and grouping. $tax_labels = array( 'name' => _x( 'Ad Groups', 'taxonomy general name', 'adfusion-ad-manager-and-monetization' ), 'singular_name' => _x( 'Ad Group', 'taxonomy singular name', 'adfusion-ad-manager-and-monetization' ), 'search_items' => __( 'Search Ad Groups', 'adfusion-ad-manager-and-monetization' ), 'all_items' => __( 'All Ad Groups', 'adfusion-ad-manager-and-monetization' ), 'parent_item' => __( 'Parent Ad Group', 'adfusion-ad-manager-and-monetization' ), 'parent_item_colon' => __( 'Parent Ad Group:', 'adfusion-ad-manager-and-monetization' ), 'edit_item' => __( 'Edit Ad Group', 'adfusion-ad-manager-and-monetization' ), 'update_item' => __( 'Update Ad Group', 'adfusion-ad-manager-and-monetization' ), 'add_new_item' => __( 'Add New Ad Group', 'adfusion-ad-manager-and-monetization' ), 'new_item_name' => __( 'New Ad Group Name', 'adfusion-ad-manager-and-monetization' ), 'menu_name' => __( 'Ad Groups', 'adfusion-ad-manager-and-monetization' ), ); $tax_args = array( 'hierarchical' => true, // Behaves like categories. 'labels' => $tax_labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'ad-group' ), 'show_in_rest' => true, // Exposes groups to the REST API for future integrations. 'capabilities' => array( 'manage_terms' => 'edit_adfusion_ads', 'edit_terms' => 'edit_adfusion_ads', 'delete_terms' => 'edit_adfusion_ads', 'assign_terms' => 'edit_adfusion_ads', ), ); register_taxonomy( 'adfusion_group', array( 'adfusion_ad' ), $tax_args ); do_action( 'adfusion_after_register_post_types_and_taxonomies' ); } } new AdFusion_Core();