Advertisement
blackimpala

CPT WordPress

Nov 8th, 2021
1,086
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.03 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4.     Plugin Name: La Pizzeria - Especialidades
  5.     Plugin URI:
  6.     Description: Añade Post Types al Sitio Web
  7.     Version: 1.0.0
  8.     Author: None
  9.     Author URI: http://instagram.com/
  10.     Text Domain: lapizzeria
  11. */
  12.  
  13. if(!defined('ABSPATH')) die();
  14.  
  15.  
  16. add_action( 'init', 'lapizzeria_especialidades' );
  17.  
  18. function lapizzeria_especialidades() {
  19.     $labels = array(
  20.         'name'               => _x( 'Especialidades', 'lapizzeria' ),
  21.         'singular_name'      => _x( 'Especialidad', 'post type singular name', 'lapizzeria' ),
  22.         'menu_name'          => _x( 'Especialidades', 'admin menu', 'lapizzeria' ),
  23.         'name_admin_bar'     => _x( 'Especialidades', 'add new on admin bar', 'lapizzeria' ),
  24.         'add_new'            => _x( 'Agregar Nueva', 'book', 'lapizzeria' ),
  25.         'add_new_item'       => __( 'Agregar Especialidad', 'lapizzeria' ),
  26.         'new_item'           => __( 'Nueva Especialidad', 'lapizzeria' ),
  27.         'edit_item'          => __( 'Editar Especialidad', 'lapizzeria' ),
  28.         'view_item'          => __( 'Ver Especialidad', 'lapizzeria' ),
  29.         'all_items'          => __( 'Todas las Especialidades', 'lapizzeria' ),
  30.         'search_items'       => __( 'Buscar Especialidades', 'lapizzeria' ),
  31.         'parent_item_colon'  => __( 'Especialidad Padre', 'lapizzeria' ),
  32.         'not_found'          => __( 'No se encontraron especialidaides', 'lapizzeria' ),
  33.         'not_found_in_trash' => __( 'No se encontraron especialidaides', 'lapizzeria' )
  34.     );
  35.  
  36.     $args = array(
  37.         'labels'             => $labels,
  38.     'description'        => __( 'Descripción.', 'lapizzeria' ),
  39.         'public'             => true,
  40.         'publicly_queryable' => true,
  41.         'show_ui'            => true,
  42.         'show_in_menu'       => true,
  43.         'query_var'          => true,
  44.         'rewrite'            => array( 'slug' => 'menu-pizzeria' ),
  45.         'capability_type'    => 'post',
  46.         'has_archive'        => true,
  47.         'hierarchical'       => false,
  48.         'menu_position'      => 6,
  49.         'supports'           => array( 'title', 'editor', 'thumbnail' ),
  50.         'taxonomies'         =>  array('categoria-menu'),
  51.         'show_in_rest'       => true,
  52.         'menu_icon'          => 'dashicons-list-view',
  53.         'rest_base'          => 'especialidades-api'
  54.     );
  55.  
  56.     register_post_type( 'especialidades', $args );
  57. }
  58.  
  59.  
  60.  
  61. /** Registrar una Taxonomia */
  62.  
  63. function lapizzeria_menu_taxonomia() {
  64.  
  65.     $labels = array(
  66.         'name'              => _x( 'Categoria Menu', 'taxonomy general name', 'lapizzeria' ),
  67.         'singular_name'     => _x( 'Categoria Menu', 'taxonomy singular name', 'lapizzeria' ),
  68.         'search_items'      => __( 'Buscar Categoria Menu', 'lapizzeria' ),
  69.         'all_items'         => __( 'Todas Categorias Menu', 'lapizzeria' ),
  70.         'parent_item'       => __( 'Categoria Menu Padre', 'lapizzeria' ),
  71.         'parent_item_colon' => __( 'Categoria Menu:', 'lapizzeria' ),
  72.         'edit_item'         => __( 'Editar Categoria Menu', 'lapizzeria' ),
  73.         'update_item'       => __( 'Actualizar Categoria Menu', 'lapizzeria' ),
  74.         'add_new_item'      => __( 'Agregar Categoria Menu', 'lapizzeria' ),
  75.         'new_item_name'     => __( 'Nueva Categoria Menu ', 'lapizzeria' ),
  76.         'menu_name'         => __( 'Categoria Menu', 'lapizzeria' ),
  77.     );
  78.  
  79.     $args = array(
  80.         'hierarchical'      => true,
  81.         'labels'            => $labels,
  82.         'show_ui'           => true,
  83.         'show_admin_column' => true,
  84.         'query_var'         => true,
  85.         'rewrite'           => array( 'slug' => 'categoria-menu' ),
  86.         'show_in_rest'      => true,
  87.         'rest-base'     => 'categoria-menu'
  88.     );
  89.  
  90.     register_taxonomy( 'categoria-menu', array( 'especialidades' ), $args );
  91. }
  92.  
  93. add_action( 'init', 'lapizzeria_menu_taxonomia', 0 );
  94.  
  95.  
  96. /** AGREGAR CAMPOS A LA RESPUESTA DE LA REST API */
  97. function lapizzeria_add_fields_rest_api() {
  98.  
  99.     register_rest_field(
  100.         'especialidades',
  101.         'input-metabox',
  102.         array(
  103.             'get_callback' => 'lapizzeria_get_price',
  104.             'update_callback' => null,
  105.             'schema' => null
  106.         )
  107.     );
  108.  
  109.     register_rest_field(
  110.         'especialidades',
  111.         'categoria_menu',
  112.         array(
  113.             'get_callback' => 'lapizzeria_taxonomia_menu',
  114.             'update_callback' => null,
  115.             'schema' => null
  116.         )
  117.     );
  118.  
  119.     register_rest_field(
  120.         'especialidades',
  121.         'imagen_destacada',
  122.         array(
  123.             'get_callback' => 'lapizzeria_obtener_imagen_destacada',
  124.             'update_callback' => null,
  125.             'schema' => null
  126.         )
  127.     );
  128. }
  129. add_action('rest_api_init', 'lapizzeria_add_fields_rest_api');
  130.  
  131. function lapizzeria_get_price() {
  132.     if(!function_exists('get_field')) {
  133.         return;
  134.     }
  135.     if(get_field('input-metabox')) {
  136.         return get_field('input-metabox');
  137.     }
  138.     return false;
  139. }
  140.  
  141. function lapizzeria_taxonomia_menu() {
  142.     global $post;
  143.     return get_object_taxonomies($post);
  144. }
  145.  
  146. function lapizzeria_obtener_imagen_destacada($object, $field_name, $request) {
  147.     if($object['featured_media']) {
  148.         $imagen = wp_get_attachment_image_src( $object['featured_media'], 'especialidades' );
  149.         return $imagen[0];
  150.     }
  151.     return false;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement