Categorías PHP (árbol de categorías). Tarjetas musicales de feliz cumpleaños Tres hombres categorías php cat id

Saludos a todos los lectores del blog. WordPress dentro en 2011, felicidades por las próximas y próximas vacaciones, les deseo mucha salud, felicidad y alegría para los próximos 360 ​​días. Como prometí en mi artículo sobre los planes para el próximo 2011, estoy trabajando para mejorar un poco todos mis blogs principales: actualizar sistemas, instalar las últimas versiones de complementos y profundizar en las plantillas para optimizar y corregir errores. El trabajo fue extremadamente difícil, incluso diría muy minucioso: encuentras una inexactitud, decides corregirla y frente a ti hay 5 proyectos separados, para cada uno de los cuales necesitas hacer correcciones. Bueno, como ya tenía planeado hacer todo esto, no hay vuelta atrás, al mismo tiempo estoy adquiriendo experiencia adicional en el proceso y ya he encontrado entre 5 y 6 temas para nuevas publicaciones de blog :) Hoy hablaremos de categorías y funciones para mostrarlos.

En uno de los artículos del blog anteriores, publiqué un truco que ayuda. Esta solución se utilizó para la función de mostrar una lista de categorías en la barra lateral usando la función wp_list_categories. La salida sería algo como esto:

Seguridad

Si el atributo del título tiene al menos cierta importancia para SEO, entonces sería mucho más útil simplemente colocar allí el nombre de la categoría, y no todo este texto innecesario. En realidad, el enlace anterior al truco ayudó a resolver este problema. Pero aquí está el problema, todo esto fue cierto (funcionó) para , lo que hizo posible preprocesar la lista resultante sin mostrarla inmediatamente. Pero ¿qué pasa con otras funciones para mostrar categorías? - Esa es la pregunta.

Por ejemplo, hoy descubrí por accidente que se escribe una gran cantidad de texto innecesario en el atributo de título de un enlace cuando se muestra una lista de categorías para una publicación específica.

Todo el problema fue que se usa aquí. la función_categoría, para el cual, lamentablemente, no se puede configurar un parámetro para que el resultado de su llamada no se muestre inmediatamente. Pero WordPress tiene otra función, get_the_category, que devuelve una serie de objetos de categoría para una publicación específica.

función get_the_category

La sintaxis de la función get_the_category es bastante simple:

nombre_gato; ?>

Los programadores saben que el parámetro cero de una matriz genera el primer elemento, y esto realmente explica cómo funciona este código.

IDENTIFICACIÓN);

var_dump($categorías); ?>

IDENTIFICACIÓN); var_dump($categorías); ?>

Para hacer esto, debe pasar la identificación de la publicación como parámetro a la función, que es lo que sucede en el código.

Por cierto, uso esta función en algunos sitios para mostrar el nombre de la categoría de publicación, pero sin un enlace activo; es solo texto útil adicional en la página. En este caso, puedes usar el código:

nombre_gato. " "; ) ?>

nombre_gato. " "; ) ?>

Bueno, y finalmente, después de pensarlo un poco, se nos ocurrió un truco para mostrar una lista de categorías para una publicación sin usar la función the_category, que reemplazamos con éxito con get_the_category. Si desea agregar código directamente al lugar de la plantilla donde se muestran las categorías, por ejemplo, el archivo archive.php, escriba algo como:

En principio, podría colocar el código para mostrar categorías en un archivo de funciones y luego, en los archivos de plantilla, cambiar the_category a una nueva función, por ejemplo, llamada my_thecat(). Por supuesto, no olvide agregar el código apropiado al archivo funciones.php antes de reemplazarlo:

function my_thecat() ( global $post ; foreach ((get_the_category($post -> ID ) ) as $category ) ( echo " cat_ID ) . "" title="" . $category -> cat_name . "">" . $ categoría -> nombre_gato "; " ) )

function my_thecat() ( global $post; foreach((get_the_category($post->ID)) as $category) ( echo "cat_ID)."" title="".$categoría->cat_name."">".$ categoría->nombre_gato."; ";

Lo probé, todo funciona. Sólo queda una pregunta: ¿cuán útil y extremadamente necesario es todo esto? Si tienes un blog con un diseño consistente que quieres mejorar, entonces puedes tomarte un par de minutos y realizar los cambios apropiados. Si tienes muchos blogs de este tipo, creo que manipular el título no aportará muchos beneficios SEO, es más fácil comprar enlaces en Rotapost a todos estos proyectos; por cierto, el experimento para aumentar las TIC en el El sistema se ha completado exitosa y positivamente; pronto habrá un informe al respecto.

Mostrar categorías de publicaciones personalizadas

Donde categoria_video es la taxonomía de la publicación del usuario (también conocida como personalizada). Y ahora con más detalle de dónde y qué. Por ejemplo tenemos:

// Tipo de grabación Vídeo if (! function_exists ("video_cp")) (función video_cp() ($labels = array ("nombre" => _x( "Video", "Nombre general del tipo de publicación", "video"), "singular_name" => _x ( "Video", "Nombre singular del tipo de publicación", "video"), "menu_name" => __( "Video", "video"), "parent_item_colon" => __( "Parent:", "video"), "todos los elementos" => __( "Todos los videos", "video") , "view_item" => __( "Ver", "video") , "add_new_item" => __( "Agregar nuevo vídeo", "video") , "add_new" => __( "Agregar video", "video") , "edit_item" => __( "Editar video", "video") , "update_item" => __( "Actualizar video", "video") , "search_items" => __( "Buscar video", "video" ), "not_found" => __( "No encontrado " , "video" ), "not_found_in_trash" => __( "No encontrado en el carrito", "video" ) , ) ; $args = array( "labels" => $labels , "supports" => array( "title", "editor", "excerpt", ), "taxonomías" => array( "categoria_video") ,// la categoría que crearemos a continuación (también conocida como taxonomía) "público" => verdadero, "menu_position" => 5, "menu_icon" => "dashicons-id-alt", ); registrarse_post_type( "vídeo", $args); ) add_action( "init", "video_cp", 0);// inicializar ) if (! function_exists ("categoria_video")) (// Categorías de vacantes función categoria_video() ( $etiquetas = matriz ( "nombre" => _x("Categorías de vídeos" , "Nombre General de Taxonomía", "categoria_video" ), "singular_name" => _x("Categoría de vídeo" , "Nombre singular de taxonomía", "categoria_video"), "menu_name" => __( "Categorías", "categoria_video"), "all_items" => __( "Categorías", "categoria_video"), "parent_item" => __ ("Vídeo de categoría principal" , "categoria_video" ), "parent_item_colon" => __("Vídeo de categoría principal:" , "categoria_video" ), "new_item_name" => __("Nueva categoría" , "categoria_video") , "add_new_item" => __("Añadir nueva categoria" , "categoria_video" ), "edit_item" => __("Editar categoria" , "categoria_video" ), "update_item" => __("Actualizar categoría" "Agregar o eliminar categoría", "categoria_video" ), "elegir_de_los_más_usados" => __( "Buscar entre populares", "categoria_video" ), "not_found" => __( "No encontrado", "categoria_video" ), ); $args = matriz( "etiquetas" => $etiquetas, "jerárquico" => verdadero, "público" => verdadero,); registrarse_taxonomy( "categoria_video", matriz ("video"), $args); ) add_action( "init", "categoria_video", 0); "público" => verdadero, "menu_position" => 5, "menu_icon" => "dashicons-id-alt", ); registrarse_post_type( "vídeo", $args); ) add_action( "init", "video_cp", 0); }

// Tipo de publicación de video if (! function_exists("video_cp")) ( function video_cp() ($labels = array("name" => _x("Video", "Nombre general del tipo de publicación", "video"), " singular_name" => _x("Video", "Tipo de publicación Nombre singular", "video"), "menu_name" => __("Video", "video"), "parent_item_colon" => __("Padre:", "video"), "all_items" => __("Todos los videos", "video"), "view_item" => __("Ver", "video"), "add_new_item" => __("Agregar nuevo video" , "video"), "add_new" => __("Agregar video", "video"), "edit_item" => __("Editar video", "video"), "update_item" => __("Actualizar video ", "video"), "search_items" => __("Buscar video", "video"), "not_found" => __("No encontrado", "video"), "not_found_in_trash" => __("No encontrado en el carrito", "video"),); $args = array("labels" => $labels, "supports" => array("title", "editor", "excerpt",), "taxonomías" = > array("categoria_video"), // la categoría que crearemos a continuación (también conocida como taxonomía) "public" => true, "menu_position" => 5, "menu_icon" => "dashicons-id-alt",); registrarse_post_type("vídeo", $args); ) add_action("init", "video_cp", 0); // inicializar ) if (! function_exists("categoria_video")) ( // Categorías para vacantes function categoria_video() ( $labels = array("name" => _x("Categorías de videos", "Nombre general de taxonomía", "categoria_video) "), "singular_name" => _x("Categoría de vídeo", "Taxonomía Singular Name", "categoria_video"), "menu_name" => __("Categorías", "categoria_video"), "all_items" => __(" Categorías", "categoria_video"), "parent_item" => __("Categoría principal Video", "categoria_video"), "parent_item_colon" => __("Categoría principal Video:", "categoria_video"), "new_item_name" => __("Nueva categoría", "categoria_video"), "add_new_item" => __("Agregar nueva categoría", "categoria_video"), "edit_item" => __("Editar categoría", "categoria_video"), "update_item" => __("Actualizar categoría", "categoria_video"), "search_items" => __("Buscar", "categoria_video"), "add_or_remove_items" => __("Agregar o eliminar categoría", "categoria_video"), " Choose_from_most_used" => __("Buscar entre populares", "categoria_video"), "not_found" => __("No encontrado", "categoria_video"),); $args = array("etiquetas" => $etiquetas, "jerárquico" => verdadero, "público" => verdadero,); Register_taxonomy("categoria_video", array("video"), $args); ) add_action("init", "categoria_video", 0); // inicializar)

Gracias al usuario Stinker por el consejo, puede que le resulte útil.

PD Guardia. En uno de los blogs de Runet encontramos una maravillosa selección de temas de cartera de WordPress a partir de 17 plantillas gratuitas de alta calidad.

En nuestro cumpleaños, nuestros seres queridos esperan agradables felicitaciones y sorpresas. Todos los que los rodean intentan felicitarlos, rodearlos de atención y expresar su amor y cuidado. Pero siempre existe el deseo de destacar entre la multitud de felicitaciones. Siempre queremos mostrarle a una persona de manera especial lo querida que es para nosotros. Existe una excelente forma moderna de felicitar a la persona que cumple años. Las tarjetas musicales serán un excelente regalo de cumpleaños. Puedes elegir cualquier canción o melodía que te guste y que le guste a tu amigo. Exactamente saludos musicales de cumpleaños Sorprenderán a tus seres queridos, les darán buen humor y les permitirán divertirse y disfrutar aún más de su cumpleaños. En el sitio web de Pozdravok puedes elegir tarjetas musicales para personas de cualquier edad y sexo. Le ofrecemos una amplia gama de felicitaciones en audio que puede enviar inmediatamente a la persona que cumple años. Asegúrese de que el cumpleañero recuerde la alegre canción durante mucho tiempo. No tenga ninguna duda de que apreciará el saludo musical como el regalo más caro.
Una felicitación musical es una excelente opción para felicitar a tus seres queridos. Imagínate lo lindo que es recibir una sorpresa tan original de tu ser querido en tu cumpleaños. Los poemas de tu canción favorita o una felicitación cómica que se enviará al teléfono del héroe de la ocasión no solo podrán felicitarte, sino también cargarte de energía positiva durante todo el día. Un buen humor es la clave para una celebración de cumpleaños interesante y divertida, un mar de impresiones y momentos alegres que recordarás durante mucho tiempo con tus amigos. Regálale a tus seres queridos Tarjetas de cumpleaños musicales para tu teléfono. , sorprende y deleita a tus seres queridos con tu originalidad y regalos creativos.
Un cumpleaños es el día en el que puedes expresar todos tus sentimientos y emociones al héroe de la ocasión. Esas palabras que no puedes expresarle a tu ser querido debido a la vergüenza, puedes transmitir saludos de feliz cumpleaños en audio. Estará encantado y feliz de recibir una sorpresa tan inusual de su amada.

Recupera datos de la categoría especificada.

Si pasa un objeto que contiene información sobre la categoría al parámetro $category, estos datos se almacenarán en caché.

Si pasa el ID de categoría al parámetro $category, los datos de la categoría se recuperarán de la base de datos o del caché, si lo hay.

Tenga en cuenta la función get_term(), que es idéntica a get_category. Con su ayuda, puede obtener datos de una taxonomía diferente a la categoría.

✈ 1 vez = 0.000443s = rápido| 50000 veces = 0,92 s = muy rapido| PHP 7.0.5, WP 4.5.1

No hay ganchos.

Uso

$cat = get_category($categoría, $salida, $filtro); $categoría (Número requerido) ID de categoría u objeto que contiene datos sobre la categoría.
Predeterminado: no$salida (constante)

Qué tipo de matriz devolver datos:

  • Objeto Objeto;
  • ARRAY_A - matriz asociativa;
  • ARRAY_N: matriz indexada.

Valor predeterminado: OBJETO

$filtro (línea) Filtro (no entiendo exactamente qué tipo de filtro es).
Valor predeterminado: "sin procesar"

Ejemplos

#1. Visualicemos los datos de la categoría en la página en la que estamos ubicados (actual):

$thisCat = get_category(get_query_var("gato")); print_r($estegato);

Como resultado, veremos algo como esto:

Objeto StdClass ( => 85 => Nombre de categoría => nombre-categoría => 0 => 85 => categoría => => 70 => 0 => 85 => 0 => => Nombre de categoría => nombre-categoría = > 70)

Hoy nuestro objetivo es crear una estructura jerárquica de categorías. Para nosotros es importante que sea conveniente almacenar categorías y que sea fácil mostrarlas donde las necesitemos.

A veces las cosas simples parecen complicadas, por eso publicaré algunos fragmentos de código que espero te sean útiles para implementar categorías PHP en forma de árbol.

Entonces, la estructura debe consistir en la identificación de la categoría (id), el nombre de la categoría (name) y, por supuesto, la identificación de la categoría principal (parent_id). En MySQL se ve así:

CREAR TABLA SI NO EXISTE `categoría` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `parent_id` int(11) NOT NULL, PRIMARY KEY (`id`)) MOTOR = JUEGO DE CARACTERES PREDETERMINADO de InnoDB = utf8 AUTO_INCREMENT = 0;

Estructura de tabla mínima y clara para almacenar categorías.

INSERTAR EN `categoría` (`id`, `nombre`, `parent_id`) VALORES (1, "Teléfonos y tabletas", "0"), (2, "Autos", "0"), (3, "Samsung ", "1"), (4, "Apple", "1"), (5, "LG", "1"), (6, "Ford", "2"), (7, "Lexus", "2"), (8, "BMW", "2"), (9, "Galaxy Tab 4", "3"), (10, "Galaxy S6", "3");

Cuando el valor parent_id=0, esta categoría no tiene una categoría principal.

Aquí todo es claro y sencillo. Ahora comencemos a mostrar la lista de categorías. Pero para mostrar la lista correctamente, primero necesitamos obtener la lista completa de categorías de PHP y solo entonces usar la recursividad para formar nuestro árbol. La siguiente función está diseñada para obtener esta lista:

Función get_cat() ( //consulta de base de datos $sql = "SELECCIONAR * DE categoría"; $resultado = mysql_query($sql); if(!$resultado) ( return NULL; ) $arr_cat = array(); if( mysql_num_rows( $resultado) != 0) ( //En el bucle formamos un array for($i = 0; $i< mysql_num_rows($result);$i++) { $row = mysql_fetch_array($result,MYSQL_ASSOC); //Формируем массив, где ключами являются адишники на родительские категории if(empty($arr_cat[$row["parent_id"]])) { $arr_cat[$row["parent_id"]] = array(); } $arr_cat[$row["parent_id"]] = $row; } //возвращаем массив return $arr_cat; } }

//obtener la matriz del directorio $resultado = get_cat();

Ahora necesitamos una función con recursividad.

Función view_cat($arr,$parent_id = 0) ( //Condiciones para salir de la recursividad if(empty($arr[$parent_id])) ( return; ) echo "

    "; // recorre la matriz y la muestra en la pantalla for($i = 0; $i< count($arr[$parent_id]);$i++) { echo "
  • " .$arr[$parent_id][$i]["name"]."; //recursión - comprueba si hay categorías secundarias view_cat($arr,$arr[$parent_id][$i]["id" ] ); eco "
  • "; ) eco "
"; }

Ahora solo queda mostrar el directorio en pantalla usando una función recursiva

View_cat($resultado);

Y en general eso es todo. De esta forma podremos obtener un árbol de categorías completo con un sinfín de subcategorías.