Current File : /var/www/e360ban/wp-content/plugins/wp-shortcodes-usuarios/src/cpt.php
<?php

/**
 * Custom post type 'wp_short_usu'
 * copyright Enrique J. Ros - enrique@enriquejros.com
 *
 * @author 			Enrique J. Ros
 * @link			https://www.enriquejros.com
 * @since			1.0.0
 * @package 		WPShortcodesUsuarios
 *
 */

defined ('ABSPATH') or exit;

if (!class_exists ('CPT_WP_Shortcodes_Usuarios')) :

	Class CPT_WP_Shortcodes_Usuarios {

		const CPT       = 'wp_short_usu';
		const CACHE_KEY = 'cache_short_usu';

		public function __construct () {

			$this->crea_cpt();

			add_action ('save_post', [$this, 'convierte_shortcode'], 10, 1);
			add_filter ('post_updated_messages', [$this, 'mensajes_guardado'], 10, 1);

			add_filter ('manage_' . self::CPT . '_posts_columns', [$this, 'datos_columnas'], 10, 1);
			add_action ('manage_' . self::CPT . '_posts_custom_column', [$this, 'rellena_datos_columnas'], 10, 2);
			
			add_filter ('post_row_actions', [$this, 'quita_ver'], 10, 1);
			add_action ('admin_head', [$this, 'quita_visibilidad'], 10);
			add_action ('admin_head-edit.php', [$this, 'cambia_titulo_tabla'], 10);
			}

		private function crea_cpt () {

			$etiquetas = array(
				'name'                  => __('Shortcodes', 'wp-shortcodes-usuarios'),
				'singular_name'         => __('Shortcode', 'wp-shortcodes-usuarios'),
				'menu_name'             => __('Shortcodes', 'wp-shortcodes-usuarios'),
				'name_admin_bar'        => __('Shortcode', 'wp-shortcodes-usuarios'),
				'archives'              => __('Archivos de shortcodes', 'wp-shortcodes-usuarios'),
				'attributes'            => __('Atributos de shortcodes', 'wp-shortcodes-usuarios'),
				'all_items'             => __('Shortcodes', 'wp-shortcodes-usuarios'),
				'add_new_item'          => __('Añadir shortcode', 'wp-shortcodes-usuarios'),
				'add_new'               => __('Añadir shortcode', 'wp-shortcodes-usuarios'),
				'new_item'              => __('Nuevo shortcode', 'wp-shortcodes-usuarios'),
				'edit_item'             => __('Editar shortcode', 'wp-shortcodes-usuarios'),
				'update_item'           => __('Actualizar shortcode', 'wp-shortcodes-usuarios'),
				'view_item'             => __('Ver shortcode', 'wp-shortcodes-usuarios'),
				'view_items'            => __('Ver shortcodes', 'wp-shortcodes-usuarios'),
				'search_items'          => __('Buscar shortcode', 'wp-shortcodes-usuarios'),
				'not_found'             => __('No hay shortcodes', 'wp-shortcodes-usuarios'),
				'not_found_in_trash'    => __('No hay shortcodes en la papelera', 'wp-shortcodes-usuarios'),
				'items_list'            => __('Lista de shortcodes', 'wp-shortcodes-usuarios'),
				'items_list_navigation' => __('Navegación por lista de shortcodes', 'wp-shortcodes-usuarios'),
				'filter_items_list'     => __('Filtrar lista de shortcodes', 'wp-shortcodes-usuarios'),
				);

			$argumentos = array(
				'label'                 => __('Shortcode', 'wp-shortcodes-usuarios'),
				'description'           => __('Permite crear shortcodes personalizados para mostrar datos de tus usuarios.', 'wp-shortcodes-usuarios'),
				'labels'                => $etiquetas,
				'supports'              => ['title'],
				'hierarchical'          => false,
				'public'                => false,
				'show_ui'               => true,
				'show_in_menu'          => true,
				'menu_position'         => 70,
				'menu_icon'             => 'dashicons-shortcode',
				'show_in_admin_bar'     => true,
				'show_in_nav_menus'     => true,
				'can_export'            => true,
				'has_archive'           => false,
				'exclude_from_search'   => true,
				'publicly_queryable'    => true,
				'capability_type'       => 'post',
				'register_meta_box_cb'	=> [$this, 'metabox_shortcode'],
				);

			register_post_type (self::CPT, $argumentos);
			}

		public function mensajes_guardado ($mensajes) {

			$mensajes[self::CPT] = array(
				1 => __('Shortcode actualizado.', 'wp-shortcodes-usuarios'),
				4 => __('Shortcode actualizado.', 'wp-shortcodes-usuarios'),
				6 => __('Shortcode creado.', 'wp-shortcodes-usuarios'),
				7 => __('Shortcode guardado.', 'wp-shortcodes-usuarios'),
				);

			return $mensajes;
			}

		public function datos_columnas ($columnas) {

			return array(
				'cb' 		=> '<input type="checkbox" />',
				'title'		=> __('Shortcode', 'wp-shortcodes-usuarios'),
				'dato' 		=> __('Dato a mostrar', 'wp-shortcodes-usuarios'),
				'plugin'	=> __('Plugin / Grupo', 'wp-shortcodes-usuarios'),
				'copy'		=> __('Copy'),
				);
			}

		public function rellena_datos_columnas ($columna, $id) {

			switch ($columna) {

				case 'plugin':

					foreach (Campos_WP_Shortcodes_Usuarios::array_opciones() as $grupo => $opcion) {

						foreach ($opcion as $key => $value) {

							if (is_array ($dato = get_field ('dato', $id)) && $dato['label'] == $key) {

								echo str_replace (':', '', $grupo); //Hay que quitarle los dos puntos del final
								return; //Eficiencia++
								}
							}
						}

					break;

				case 'dato':

					foreach (Campos_WP_Shortcodes_Usuarios::array_opciones() as $grupo => $opcion) {

						foreach ($opcion as $key => $value) {

							if (is_array ($dato = get_field ('dato', $id)) && $dato['label'] == $key) {

								echo $value;
								return; //Eficiencia++
								}
							}
						}

					break;

				case 'copy':
					printf ('<code>%s</code>', get_the_title($id));
					break;
				}
			}

		public function cambia_titulo_tabla () {

			global $post;

			if (is_object ($post) && self::CPT == get_post_type ($post->ID))
				add_filter ('the_title', function ($titulo, $id) {
					return sprintf ('[%s]', $titulo);
					}, 10, 2);
			}

		public function metabox_shortcode () {

			if (!isset ($_GET['post']))
				return;

			add_meta_box ('shortcodes_usuarios', __('Shortcode', 'wp-shortcodes-usuarios'), [$this, 'metabox_shortcode_html'], self::CPT, 'normal', 'low');
			}

		public function metabox_shortcode_html () {

			global $post;

			printf ('<p><code>[%s]</code></p>', $post->post_title);
			}

		public static function pide_query ($query_vars = false) {

			$query = array(
				'post_type'			=> self::CPT,
				'post_status' 		=> 'publish',
				'posts_per_page'	=> -1,
				'orderby'			=> 'ID',
				'order'				=> 'DESC',
				);

			if (!$query_vars) {

				if ($cache = wp_cache_get (self::CACHE_KEY))
					return $cache;

				if ($cpt = new WP_Query($query)) {

					wp_cache_set (self::CACHE_KEY, $cpt->posts, '', 3);
					return $cpt->posts;
					}
				}

			foreach ($query_vars as $query_var => $valor)
				$query[$query_var] = $valor;

			if ($cpt = new WP_Query ($query))
				return $cpt->posts;

			return false;
			}

		public function convierte_shortcode ($post_id) {

			if (defined ('DOING_AUTOSAVE') && DOING_AUTOSAVE) //Evitamos la ejecución en autoguardados
				return;

			if (!current_user_can ('edit_post', $post_id)) //Seguridad
				return;

			remove_action ('save_post', [$this, 'convierte_shortcode']); //Evitamos que entre en bucle

			$post       = get_post ($post_id);
			$caracteres = ['à', 'á', 'â', 'ä', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ò', 'ó', 'ô', 'ö', 'ù', 'ú', 'û', 'ü', 'ñ', 'ç', 'À', 'Á', 'Â', 'Ä', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ñ', 'Ç', ' ', '$', '€', '@', '#', '~', '¬', '?', '¿', '!', '¡', '=', '&', '|', '/', '\\', '\'', 'º', 'ª', '"', '·', '%', '(', ')', '{', '}', ',', '.', ';', ':', '<', '>', '-', '+', '*', '[', ']'];
			$sustituye  = ['a', 'a', 'a', 'a', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'n', 'c', 'a', 'a', 'a', 'a', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'n', 'c', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '', ''];

			if (self::CPT == $post->post_type)
				wp_update_post (
					array(
						'ID'		 => $post->ID,
						'post_title' => strtolower (str_replace ($caracteres, $sustituye, $post->post_title)),
						)
					);

			return;
			}

		public function quita_ver ($acciones) {

			if (get_post_type() == self::CPT) {

				unset ($acciones['view']);
				unset ($acciones['inline hide-if-no-js']); //Edición rápida
				}

			return $acciones;
			}

		public function quita_visibilidad () {

			printf ('<style>.post-type-%s div#visibility.misc-pub-section.misc-pub-visibility,.post-type-%s #minor-publishing-actions .preview{display:none}</style>', self::CPT, self::CPT);
			}

		}

endif;
Page Not Found
Parece que el enlace que apuntaba aquí no sirve. ¿Quieres probar con una búsqueda?
¡Hola!