Snippets
Created by
Joseph Dickson
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | <?php
/**
* Plugin Name: Newsletter
* Description: Custom Post Type for a newsletter archive and standing element tiles
* Author: Joseph Dickson
* Author URI: https://joseph-dickson.com/
* Version: 0.1
* License: GPL2
*/
// Prevent direct access to this file
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
/**
* Creates a custom post type for a Newsletter
* A "schedule" icon will apear in dashboard navigation
* A custom "newsletter" slug permalink is created
*
* https://codex.wordpress.org/Function_Reference/register_post_type#Arguments
*/
function pz_custom_post_types() {
$labels = array(
'name' => 'Newsletter',
'singular_name' => 'Newsletter',
'menu_name' => 'Newsletter',
'name_admin_bar' => 'Newsletter',
'add_new' => 'Add a New Newsletter',
'add_new_item' => 'Add a New Newsletter',
'new_item' => 'New Newsletter',
'edit_item' => 'Edit Newsletter',
'view_item' => 'View Newsletter',
'all_items' => 'All Newsletters',
'search_items' => 'Search Newsletters',
'parent_item_colon' => 'Newsletters :',
'not_found' => 'No newsletters found.',
'not_found_in_trash' => 'No newsletters found in Trash.',
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_icon' => 'dashicons-schedule',
'query_var' => true,
'rewrite' => array( 'slug' => 'newsletter' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 5,
'show_in_rest' => true,
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ),
);
register_post_type( 'newsletter', $args );
/*
* Adds a Custom Post Type for a "Tile"
* This will appear as a sub item of Newsletter for optional
* standing elements to appear within Newsletter posts that
* can be added to WordPress templates.
*/
$labels_tile = array(
'name' => 'Tile',
'singular_name' => 'Tile',
'menu_name' => 'Tile',
'name_admin_bar' => 'Tile',
'add_new' => 'Add a New Tile',
'add_new_item' => 'Add a New Tile',
'new_item' => 'New Tile',
'edit_item' => 'Edit Tile',
'view_item' => 'View Tile',
'all_items' => 'All Tiles',
'search_items' => 'Search Tiles',
'parent_item_colon' => 'Tiles :',
'not_found' => 'No tiles found.',
'not_found_in_trash' => 'No tiles found in Trash.',
);
$args_tile = array(
'labels' => $labels_tile,
'public' => true,
'publicly_queryable' => false,
'show_ui' => true,
'show_in_menu' => 'edit.php?post_type=newsletter',
'menu_icon' => 'dashicons-schedule',
'query_var' => true,
'rewrite' => array( 'slug' => 'tile' ),
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => false,
'menu_position' => 5,
'show_in_rest' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
);
register_post_type( 'tile', $args_tile );
}
add_action( 'init', 'pz_custom_post_types' );
// Flush rewrite rules to add permalink slug when plugin is activated or reactivated
function my_rewrite_flush() {
pz_custom_post_types();
flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'my_rewrite_flush' );
|
Comments (0)
You can clone a snippet to your computer for local editing. Learn more.