Advertisement
Guest User

Untitled

a guest
Jul 10th, 2015
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.69 KB | None | 0 0
  1. <?php
  2.  
  3. /* Register post meta (note: you might want to alter the callbacks). */
  4. function prefix_store_register_meta() {
  5.  
  6.     register_meta( 'post', '_store_url',        'esc_url_raw', '__return_true' );
  7.     register_meta( 'post', '_store_client',     'strip_tags',  '__return_true' );
  8.     register_meta( 'post', '_store_location',   'strip_tags',  '__return_true' );
  9.     register_meta( 'post', '_store_start_date', 'strip_tags',  '__return_true' );
  10.     register_meta( 'post', '_store_end_date',   'strip_tags',  '__return_true' );
  11. }
  12.  
  13.  
  14. /* Register the Portfolio Project post type. */
  15. function prefix_store_register_post_types() {
  16.    
  17.     register_post_type(
  18.         'store',
  19.         array(
  20.             'description'         => '',
  21.             'public'              => true,
  22.             'publicly_queryable'  => true,
  23.             'show_in_nav_menus'   => false,
  24.             'show_in_admin_bar'   => true,
  25.             'exclude_from_search' => false,
  26.             'show_ui'             => true,
  27.             'show_in_menu'        => true,
  28.             'menu_position'       => 1,
  29.             'menu_icon'           => 'dashicons-store',
  30.             'can_export'          => true,
  31.             'delete_with_user'    => false,
  32.             'hierarchical'        => false,
  33.             'has_archive'         => 'maggy-butikker',
  34.             'query_var'           => 'store',
  35.             'capability_type'     => 'store',
  36.             'map_meta_cap'        => true,
  37.  
  38.             /* Capabilities. */
  39.             'capabilities' => array(
  40.                 'edit_post'              => 'edit_store',
  41.                 'read_post'              => 'read_store',
  42.                 'delete_post'            => 'delete_store',
  43.                 'create_posts'           => 'create_store',
  44.                 'edit_posts'             => 'edit_store',
  45.                 'edit_others_posts'      => 'manage_store',
  46.                 'publish_posts'          => 'manage_store',
  47.                 'read_private_posts'     => 'read',
  48.                 'read'                   => 'read',
  49.                 'delete_posts'           => 'manage_store',
  50.                 'delete_private_posts'   => 'manage_store',
  51.                 'delete_published_posts' => 'manage_store',
  52.                 'delete_others_posts'    => 'manage_store',
  53.                 'edit_private_posts'     => 'edit_store',
  54.                 'edit_published_posts'   => 'edit_store'
  55.             ),
  56.  
  57.             /* The rewrite handles the URL structure. */
  58.             'rewrite' => array(
  59.                 'slug'       => 'maggy-butikker',
  60.                 'with_front' => false,
  61.                 'pages'      => true,
  62.                 'feeds'      => true,
  63.                 'ep_mask'    => EP_PERMALINK,
  64.             ),
  65.  
  66.             /* What features the post type supports. */
  67.             'supports' => array(
  68.                 'title',
  69.                 'editor',
  70.                 'excerpt',
  71.                 'author',
  72.                 'thumbnail'
  73.             ),
  74.  
  75.             /* Labels used when displaying the posts. */
  76.             'labels' => array(
  77.                 'name'               => __( 'Butikker',                   'example-textdomain' ),
  78.                 'singular_name'      => __( 'Butikk',                    'example-textdomain' ),
  79.                 'menu_name'          => __( 'Butikker',                  'example-textdomain' ),
  80.                 'name_admin_bar'     => __( 'Butikker',          'example-textdomain' ),
  81.                 'add_new'            => __( 'Ny butikk',                    'example-textdomain' ),
  82.                 'add_new_item'       => __( 'Legg til ny butikk',            'example-textdomain' ),
  83.                 'edit_item'          => __( 'Rediger Butikk',               'example-textdomain' ),
  84.                 'new_item'           => __( 'Ny butikk',                'example-textdomain' ),
  85.                 'view_item'          => __( 'Se Butikker',               'example-textdomain' ),
  86.                 'search_items'       => __( 'Søk Butikker',            'example-textdomain' ),
  87.                 'not_found'          => __( 'Ingen butikker funnet',          'example-textdomain' ),
  88.                 'not_found_in_trash' => __( 'Ingen butikker funnet i søppelkurven', 'example-textdomain' ),
  89.                 'all_items'          => __( 'Butikker',                   'example-textdomain' ),
  90.             )
  91.         )
  92.     );
  93. }
  94.  
  95. /* Register the Portfolio Category taxonomy. */
  96. function prefix_store_register_taxonomies() {
  97.  
  98.     register_taxonomy(
  99.         'store_category',
  100.         array( 'store' ),
  101.         array(
  102.             'public'            => true,
  103.             'show_ui'           => true,
  104.             'show_in_nav_menus' => true,
  105.             'show_tagcloud'     => true,
  106.             'show_admin_column' => true,
  107.             'hierarchical'      => true,
  108.             'query_var'         => 'store_category',
  109.  
  110.             /* Capabilities. */
  111.             'capabilities' => array(
  112.                 'manage_terms' => 'manage_store',
  113.                 'edit_terms'   => 'manage_store',
  114.                 'delete_terms' => 'manage_store',
  115.                 'assign_terms' => 'edit_store',
  116.             ),
  117.  
  118.             /* The rewrite handles the URL structure. */
  119.             'rewrite' => array(
  120.                 'slug'         => 'butikker/category',
  121.                 'with_front'   => false,
  122.                 'hierarchical' => true,
  123.                 'ep_mask'      => EP_NONE
  124.             ),
  125.  
  126.             /* Labels used when displaying taxonomy and terms. */
  127.             'labels' => array(
  128.                 'name'                       => __( 'Butikkategorier', 'example-textdomain' ),
  129.                 'singular_name'              => __( 'Butikkategori',   'example-textdomain' ),
  130.                 'menu_name'                  => __( 'Kategorier',         'example-textdomain' ),
  131.                 'name_admin_bar'             => __( 'Kategori',           'example-textdomain' ),
  132.                 'search_items'               => __( 'Søk i kategorier',  'example-textdomain' ),
  133.                 'popular_items'              => __( 'Populære kategorier', 'example-textdomain' ),
  134.                 'all_items'                  => __( 'Alle kategorier',     'example-textdomain' ),
  135.                 'edit_item'                  => __( 'Rediger kategori',      'example-textdomain' ),
  136.                 'view_item'                  => __( 'Se kategori',      'example-textdomain' ),
  137.                 'update_item'                => __( 'Oppdater kategori',    'example-textdomain' ),
  138.                 'add_new_item'               => __( 'Legg til ny kategori',   'example-textdomain' ),
  139.                 'new_item_name'              => __( 'Nytt kategorinavn',  'example-textdomain' ),
  140.                 'parent_item'                => __( 'Overordnet kategori',    'example-textdomain' ),
  141.                 'parent_item_colon'          => __( 'Overordnet kategori:',   'example-textdomain' ),
  142.                 'separate_items_with_commas' => null,
  143.                 'add_or_remove_items'        => null,
  144.                 'choose_from_most_used'      => null,
  145.                 'not_found'                  => null,
  146.             )
  147.         )
  148.     );
  149.  
  150.     /* Register the Portfolio Tag taxonomy. */
  151.  
  152.     register_taxonomy(
  153.         'store_tag',
  154.         array( 'store' ),
  155.         array(
  156.             'public'            => true,
  157.             'show_ui'           => true,
  158.             'show_in_nav_menus' => true,
  159.             'show_tagcloud'     => true,
  160.             'show_admin_column' => true,
  161.             'hierarchical'      => false,
  162.             'query_var'         => 'store_tag',
  163.  
  164.             /* Capabilities. */
  165.             'capabilities' => array(
  166.                 'manage_terms' => 'manage_store',
  167.                 'edit_terms'   => 'manage_store',
  168.                 'delete_terms' => 'manage_store',
  169.                 'assign_terms' => 'edit_store',
  170.             ),
  171.  
  172.             /* The rewrite handles the URL structure. */
  173.             'rewrite' => array(
  174.                 'slug'         => 'store/tag',
  175.                 'with_front'   => false,
  176.                 'hierarchical' => false,
  177.                 'ep_mask'      => EP_NONE
  178.             ),
  179.  
  180.             /* Labels used when displaying taxonomy and terms. */
  181.             'labels' => array(
  182.                 'name'                       => __( 'Butikk-tagger',                   'example-textdomain' ),
  183.                 'singular_name'              => __( 'Butikk-tag',                    'example-textdomain' ),
  184.                 'menu_name'                  => __( 'Tagger',                           'example-textdomain' ),
  185.                 'name_admin_bar'             => __( 'Tag',                            'example-textdomain' ),
  186.                 'search_items'               => __( 'Søk tagger',                    'example-textdomain' ),
  187.                 'popular_items'              => __( 'Populære tagger',                   'example-textdomain' ),
  188.                 'all_items'                  => __( 'Alle tagger',                       'example-textdomain' ),
  189.                 'edit_item'                  => __( 'Rediger tagger',                       'example-textdomain' ),
  190.                 'view_item'                  => __( 'Se tagger',                       'example-textdomain' ),
  191.                 'update_item'                => __( 'Oppdater tagger',                     'example-textdomain' ),
  192.                 'add_new_item'               => __( 'Legg til ny tag',                    'example-textdomain' ),
  193.                 'new_item_name'              => __( 'Nytt tag-navn',                   'example-textdomain' ),
  194.                 'separate_items_with_commas' => __( 'Separer tagger med komma',      'example-textdomain' ),
  195.                 'add_or_remove_items'        => __( 'Legg til eller fjern tagger',             'example-textdomain' ),
  196.                 'choose_from_most_used'      => __( 'Velg mellom mest brukte tagger', 'example-textdomain' ),
  197.                 'not_found'                  => __( 'Ingen tagger funnet',                  'example-textdomain' ),
  198.                 'parent_item'                => null,
  199.                 'parent_item_colon'          => null,
  200.             )
  201.         )
  202.     );
  203. }
  204.  
  205. //Init
  206.  
  207.  
  208. function add_testimonial_caps_to_admin() {
  209.   $caps = array(
  210.                 'edit_post'              => 'edit_store',
  211.                 'read_post'              => 'read_store',
  212.                 'delete_post'            => 'delete_store',
  213.                 'create_posts'           => 'create_store',
  214.                 'edit_posts'             => 'edit_store',
  215.                 'edit_others_posts'      => 'manage_store',
  216.                 'publish_posts'          => 'manage_store',
  217.                 'read_private_posts'     => 'read',
  218.                 'read'                   => 'read',
  219.                 'delete_posts'           => 'manage_store',
  220.                 'delete_private_posts'   => 'manage_store',
  221.                 'delete_published_posts' => 'manage_store',
  222.                 'delete_others_posts'    => 'manage_store',
  223.                 'edit_private_posts'     => 'edit_store',
  224.                 'edit_published_posts'   => 'edit_store'
  225.                 //Må hentes fra capabilities ovenfor og ikke repeteres på nytt
  226.   );
  227.   $roles = array(
  228.     get_role( 'administrator' ),
  229.     get_role( 'editor' ),
  230.   );
  231.   foreach ($roles as $role) {
  232.     foreach ($caps as $cap) {
  233.       $role->add_cap( $cap );
  234.     }
  235.   }
  236. }
  237.  
  238. add_action( 'init', 'prefix_store_register_meta' );
  239. add_action( 'init', 'prefix_store_register_post_types' );
  240. add_action( 'init', 'prefix_store_register_taxonomies' );
  241. add_action( 'init', 'add_testimonial_caps_to_admin' );
  242. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement