La comunidad de WordPress tiene más de 23,000 complementos hasta ahora que hacen muchas cosas locas. Le mostraré tres complementos de calidad gratuitos que pueden ayudarlo a comenzar una cartera bien estructurada. TL; DR Si estás aquí para escanear el artículo, aquí hay una lista de los complementos de los que estoy hablando:
Interfaz de uso para tipos de publicaciones personalizadas
Metaxet
Publicaciones 2 publicaciones
Descargue el código fuente del tema. Ahora, en su mayor parte, todos estos complementos hacen algo que debemos saber cómo hacer con las API de WordPress. La interfaz de uso para los tipos de publicaciones personalizadas crea tipos de publicaciones y taxonomías personalizadas. Meta Box crea un agua metabox más ligera. Y las publicaciones 2 publicaciones crean relaciones entre los tipos de publicaciones.
¿Por qué usar complementos para hacer estas cosas cuando podemos crear nuestros propios complementos de WordPress? Para eliminar pesas. Si eres como yo, has construido docenas, tal vez cientos de temas de WordPress y te resulta aburrido reescribir el mismo código una y otra vez. Este conjunto de herramientas lo carga mucho en la hora de inicio cuando crea temas y le ofrece una multitud de funciones desde el principio, por lo que puede concentrarse en lo que es realmente vital: la personalización. El producto final aquí son algunas capturas de pantalla de la cartera simulada que crearemos con estos excelentes complementos.

Los complementos le darán una breve presentación general de lo que cada complemento puede hacer por usted y cómo pueden funcionar bien juntos para usted. Salta a la página del código si ya conoce sobre ellos. Interfaz de uso para tipos de publicaciones personalizadas

CPT es un complemento fantástico para crear fácilmente publicaciones y taxonomías personalizadas. Por supuesto, puede hacerlo desde cero con código utilizando los tipos de publicación personalizados y la API de taxonomía de la API, pero CPT utiliza una interfaz de uso limpio para ingresar toda la información necesaria para cada tipo de publicación. Una vez que haya ingresado la configuración, puede “obtener el código” y puede colocarlo directamente en su tema.
Las meta cajas siempre han sido extremadamente útiles al crear temas personalizados de WordPress. Son relativamente fáciles de configurar usando add_meta_box (); Sin embargo, puede ser aburrido cuando se trata de imágenes, eligiendo colores y entradas más avanzadas. Meta Box le ofrece una amplia gama de entradas para usar con una API que es aún más simple que la que WordPress le ofrece de forma predeterminada. Una vez más, defina los meta cuadros por código. El complemento le brinda solo una funcionalidad extendida para entradas avanzadas. Publicaciones 2 publicaciones

Una cosa que WordPress no proporciona de inmediato son las relaciones de tipo post. Usando publicaciones 2 publicaciones, con una sola línea de código, puede conectar tipos de publicaciones juntas, y el complemento agrega automáticamente un meta cuadro a la página del editor para conectarlas. Esto es bastante útil cuando desea vincular a las personas con proyectos, proyectos a los clientes, etc.

Al armar todo esto, así que ahora has llegado a mi set de dieta, es hora de usarlo en la práctica. Construiremos un tema de cartera completamente funcional en menos de una hora, solo para mostrarle lo fácil que puede ser. Nota: Le mostraré un CSS mínimo, solo que construya veinte twelve, porque este elemento no se trata del diseño de una cartera, sino solo de la funcionalidad. Planificación de la arquitectura de información corta, para elaborar un plan sobre cómo se estructura el contenido. Conozca a Creatr, una agencia de diseño falso para nuestros propósitos.
Creatr vino a nosotros para una cartera de WordPress. La cartera tendrá proyectos: este es un tipo de contenido. Una cartera puede tener un equipo que trabaja en proyectos: hay otro tipo de contenido y una relación de publicación. Finalmente, Creatr tiene varias oficinas, y cada oficina tendrá muchos miembros del equipo que pertenecen a esas oficinas. Entonces nuestros tipos y publicaciones son:

Las oficinas tienen muchos miembros del equipo
Los miembros del equipo tienen muchos proyectos
Los proyectos tienen muchos miembros del equipo
Los proyectos tienen una oficina a través de un miembro del equipo
Una descripción general de las relaciones de publicación para cada tipo de publicación, querremos un conjunto diferente de metacasas. A continuación mostré los campos personalizados que tendrá cada uno.
Oficina

Ubicación
Una foto (en miniatura)
Miembro del equipo
Role
Años
Educación
Una foto (en miniatura)
Proyecto
Un cliente
Un presupuesto
Múltiples fotos
¡Vamos! Comienzo con una nueva instalación de WordPress. Si no sabe cómo hacer esto, siga el tutorial en el sitio web de WordPress.org. Aquí hay un contenido rápido para una referencia fácil.
Crear tipos de publicaciones de tipo post
Crear meta cajas
Agregar contenido falso
Agregar páginas para mostrar contenido
Crea la página “Oficinas”.
Crea un perfil de oficina con la lista de equipos
Crear una página de perfil para los miembros del equipo con la lista de proyectos
Crear una página de listado de proyectos
Crear una sola página de proyecto
Descargue, instale y active los siguientes complementos.
Interfaz de uso para tipos de publicaciones personalizadas
Metaxet
Publicaciones 2 publicaciones
Una vez instalado, tenemos tres nuevas API y una nueva página de configuraciones: ¡excelente! Ahora es el momento de permanecer atrapado en un código. Tipos de excelentes publicaciones. Entonces tenemos que crear oficinas, miembros del equipo y proyectos. Pase con el mouse a través del nuevo menú de configuración que vea en la barra lateral llamada “Publicaciones personalizadas” y presione “New Add”.
Aquí tendrá la oportunidad de crear un tipo de publicación personalizada o una taxonomía. Nos quedemos en CPTS por el momento. Continúe y complete la configuración simple para nuestros tipos de publicaciones.
Para las oficinas, el nombre del tipo de nombre debe ser “Oficinas”

La etiqueta debe ser “oficinas”

La etiqueta singular debe ser “oficina”
Después de haber terminado, presione “Crea una publicación personalizada”.
Para los miembros del equipo:
Para los miembros del equipo, el nombre de la publicación debería ser “personas”
La etiqueta debe ser “personas”

La etiqueta singular debe ser “persona”
Para proyectos:
Para proyectos, el nombre de la publicación debería ser “proyectos”
La etiqueta debe ser “proyectos”
El sello singular debe ser “Proyecto”
También agregaremos una taxonomía a los proyectos, simplemente “tipos”. Hacemos esto si también tenemos un blog en el sitio, para que las categorías predeterminadas de WordPress no devuelvan una mezcla de tipos de publicaciones. No es importante que la babosa de taxonomía sea “tipos de proyectos”, porque “tipos” está reservado para la funcionalidad básica de WordPress. Sin embargo, las etiquetas solo pueden ser “tipos” y “tipo”. Recuerde seleccionar “proyectos” para la entrada “adjunte al tipo de publicación”. Presione “Crear una taxonomía personalizada”.
Después de haberlos creado todos, vuelva al mouse sobre los tipos de elementos del menú de publicaciones personalizadas y seleccione los tipos de publicaciones. Aquí se le presentarán los tres tipos de publicaciones que acabamos de hacer. En una interfaz de uso. Crudo. También notará que hay nuevos elementos de menú en el WP-Admin. ¡Transfiamos al código!
Twentytwelve Lui Functions.php Para mantenerlo limpio, colocaremos todo el código escrito en este artículo en la parte superior de las funciones del archivo.php de Twentytwelve. Ábralo en tu editor de texto favorito. Inmediatamente después de la etiqueta de apertura <? Php, presione la devolución varias veces y agregue un título de comentario: /**
* Tipos de publicaciones: oficinas, personas y proyectos
*/ Regrese a la pantalla de administración y seleccione "Obtenga el código" para las oficinas. Copie todo esto y péguelos bajo el comentario del título que acaba de agregar. Repita esto para personas y proyectos. Cada fragmento de código debe verse así: registro_post_type ('oficinas',

Matriz (

‘etiqueta’ => ‘oficinas’,
‘Descripción’ => ”,
‘Public’ => Verdadero,
‘Show_ui’ => verdadero,
‘Show_in_menu’ => verdadero,
‘Capability_Type’ => ‘post’, ‘jerárquico’ => falso,
‘Rewrite’ => Array (‘Slug’ => ”),
‘Query_var’ => True,
‘Exclude_from_search’ => false,
‘admite’ => array (
‘Título’,
‘editor’,
‘Extracto’,
‘Trackbacks’,
‘Campos Personalizados’,
‘Comentarios’,
‘Revisiones’,
‘Miniatura’,
‘Autor’,
‘Page-Attributes’
),
‘Etiquetas’ => Array (
‘Nombre’ => ‘Oficinas’,
‘Singular_name’ => ‘Office’,
‘Menú_name’ => ‘oficinas’,
‘add_new’ => ‘agregar oficina’,
‘add_new_item’ => ‘Agregar nueva oficina’,
‘Editar’ => ‘editar’,
‘Edit_item’ => ‘Editar Office’,
‘New_item’ => ‘New Office’,
‘Ver’ => ‘Ver Office’,
‘View_item’ => ‘Ver Office’,
‘Search_items’ => ‘Oficinas de búsqueda’,
‘Not_Found’ => ‘No se encuentran oficinas’,
‘Not_found_in_trash’ => ‘No se encuentran oficinas en la basura’,
‘Padre’ => ‘Office de padres’,
),
)
); Una vez que se encuentra en las funciones de funciones.php (debe haber 3x registro_ype () llamadas), proceda exactamente para la taxonomía: presione “Administrar taxonomías” en el menú en tipos de publicaciones personalizadas. Una vez que llegue allí, busque los nuevos “tipos de proyectos” de taxonomía que creamos. Presione “Obtenga el código” e insértelo en el código de registro personalizado para el tipo de publicación.
Sin embargo, debemos hacer un cambio rápido: si dejamos el código de taxonomía tal como es, actuará como un sistema de etiquetado, donde queremos que actúe como categorías. Cambie la propiedad “jerárquica” de esta: registro_taxonomy (‘Project-types’, Array (
0 => ‘Proyectos’,
), array (‘jerárquico’ => falso, ‘etiqueta’ => ‘tipos’, ‘show_ui’ => true, ‘query_var’ => true, ‘rewrite’ => array (‘slog’ => ”),,,,, ‘Singular_Label’ => ‘type’)); A esto: registro_taxonomy (‘Project-types’, array (0 => proyectos ‘,
), array (‘jerárquico’ => true, ‘etiqueta’ => ‘tipos’, ‘show_ui’ => true, ‘query_var’ => true, ‘rewrites’ => array (‘slog’ => ”),,,, ‘Singular_Label’ => ‘type’)); Brillante. Si lo desea, vaya a la página del complemento y desactive los tipos de complementos de publicaciones personalizadas. ¡En serio! Si todo va bien, sus publicaciones y taxonomías deben permanecer en el menú para que permanezcan disponibles para su tema.
Publicar relaciones Ahora hemos configurado los tipos de publicaciones personalizadas, es muy fácil crear relaciones entre ellas. De hecho, ¡solo una línea en la relación! Aquí hay una lista revisada de relaciones que queremos crear.

Las oficinas tienen muchos miembros del equipo
Los miembros del equipo tienen muchos proyectos
Los proyectos tienen muchos miembros del equipo
Projects tiene una oficina
La parte fuerte de las publicaciones 2 publicaciones es que podemos crear relaciones vestidas, es decir, un proyecto pertenece a una oficina a través de una persona. Este tipo de conexiones complejas es una de las características que colocan marcos como Ruby en Rails antes de WordPress en la estructuración de contenido. Aquí hay un diagrama rápido que demuestra esto, siendo la línea roja la relación.

Registre las conexiones con un gancho que contiene una función. Simple. A continuación se presentan los 2 fragmentos que necesita para crear las relaciones que queremos. /**
* Publicar relaciones
*/
Function portfolio_relationships () {
P2p_register_connection_type (array (
‘Nombre’ => ‘Offices_to_people’,

‘De’ => ‘Oficinas’,
‘a’ => ‘gente’
));
P2p_register_connection_type (array (
‘Name’ => ‘People_to_projects’,
‘De’ => ‘People’,
‘a’ => ‘proyectos’
));
}
add_action (‘p2p_init’, ‘portfolio_relationships’); Eso es todo. Si visita la página Agregar nuevos proyectos, verá que podemos crear instantáneamente conexiones con las personas. Lo mismo es cierto para las personas y las oficinas. Esto es beneficioso para nosotros cuando queremos mostrar estas relaciones en nuestro tema, es decir, mostrar a los miembros del equipo que trabajaron en un proyecto. Esto ingresará al juego cuando agregamos contenido a nuestro blog. Primero hagamos los elementos básicos para la base de datos más limpia posible.
Meta cajas Debido a que activamos el complemento Meta Box al comienzo del tutorial, la nueva API está disponible de inmediato. Me gusta este complemento, porque la API es prácticamente una serie de información que construye el metabox. Siga esta sintaxis: function registro_my_meta_boxes () {
$ meta_boxes = array ();
$ meta_boxes [] = array (
‘Título’ => ‘Meta Box Title’,
‘Páginas’ => array (‘post’, ‘tipos’, ‘aquí’),
‘Campos’ => array (

Matriz (
‘Nombre’ => ‘mi título de campo’,
‘Type’ => ‘text’
)
)
);
$ meta_boxes [] = array (
// Información y campos para el segundo meta box en Cherre
);
Foreach ($ meta_boxes como $ meta_box) nuevo rw_meta_box ($ meta_box);
}
add_action (‘admin_init’, ‘registrar_my_meta_boxes’); Suficientemente simple. Un desglose rápido de esto es el siguiente:
Crear una matriz vacía
Agregue 2 metacasas a la matriz
Cruzar los nuevos meta crea cajas en el bucle y grabarlas
La mejor parte de esto es que podemos usar una variedad de entradas, 19 para ser exactamente. Puede consultar la lista completa, pero solo usaremos una mano para nuestros propósitos. La caja de meta “oficinas”. Para recapitular rápidamente, queremos una foto y ubicación para cada oficina. Debido a que podemos usar la miniatura del proyecto (núcleo) para una foto, todo lo que necesitamos es una ubicación. ¡Simple! El siguiente código creará instantáneamente un meta cuadro que nos permite especificar una ubicación basada en texto para cada oficina. Según el código de relación de tipo posterior, agregue lo siguiente. función registrar_portfolio_meta_boxes () {
$ prefix = ‘P_’;
$ meta_boxes = array ();
$ meta_boxes [] = array (
‘Título’ => ‘Ubicación de la oficina’,
‘Desc’ => ‘Ingrese la ubicación física de la oficina’,
‘Páginas’ => Array (‘Oficinas’),
‘context’ => ‘lado’,
‘Campos’ => array (
Matriz (
‘Nombre’ => ‘ubicación’,
‘id’ => $ prefix. ‘Ubicación’,
‘Desc’ => ‘Ingrese la ubicación física de la oficina’,
‘Type’ => ‘text’
),
)
);
Foreach ($ meta_boxes como $ meta_box)
Nuevo rw_meta_box ($ met_box);
}
add_action (‘admin_init’, ‘registrar_portfolio_meta_boxes’);
Si va a la página “Agregar nueva” para las oficinas, notará una nueva caja meta en la parte superior izquierda. Para colocar esto a continuación en la pila, agregue ‘prioridad’ => ‘predeterminado’, justo debajo donde declara el contexto del metabox en el código. Una meta caja para las personas para cada persona, queremos una meta caja que le permita mostrar el papel, la edad, la educación y una foto. Una vez más, una foto singular puede ser manejada mediante la caja Meta Post Miniaturi; Sin embargo, necesitamos uno separado para la edad y la educación. Desde aquí, agregamos a nuestra función Register_Portfolio_Meta_Boxes (). Si una persona tiene más diplomas o estudios, queremos que ese campo sea clonable. Simplemente agregue la propiedad ‘clon’ => verdadero, a la instrucción de campo, como se ve a continuación. function registro_portfolio_meta_boxes () {$ prefix = ‘p_’;
…
$ meta_boxes [] = array (
‘Título’ => ‘Información personal’,
‘Desc’ => ‘Ingrese la edad y la educación de esta persona’,
‘Páginas’ => array (‘personas’),
‘Campos’ => array (

Matriz (
‘Nombre’ => ‘Rolle’,
‘id’ => $ prefix. ‘Role’,
‘Desc’ => ¿Qué hace esta persona? ‘,
‘Type’ => ‘text’
),
Matriz (
‘Nombre’ => ‘edad’,
‘id’ => $ prefix. ‘Años’,
‘Desc’ => ‘Por favor ingrese la edad de esta persona’,
‘Type’ => ‘text’
),
Matriz (
‘Nombre’ => ‘Educación’,
‘id’ => $ prefix. ‘Educación’,
‘Desc’ => Por favor ingrese a esta persona Educación ‘,
‘Type’ => ‘text’,
‘Clon’ => verdadero
),
)
);
…
} … Visitando la página “Agregar una nueva persona”, puede ver que nuestra nueva caja meta está allí, con la posibilidad de agregar una edad y más educación.
Proyecto Meta Box Eventualmente, queremos agregar un cliente, un presupuesto y más imágenes a cada proyecto. Aquí, la función de clonación no es necesaria. Podemos adjuntar y pedir más imágenes a proyectos sin agitación. función registrar_portfolio_meta_boxes () {…
$ meta_boxes [] = array (
‘Título’ => ‘Datos del proyecto’,
‘Desc’ => ‘La información del proyecto va aquí.
‘Páginas’ => Array (‘Proyectos’),
‘Campos’ => array (
Matriz (
‘Nombre’ => ‘Cliente’,

‘id’ => $ prefix. ‘cliente’,
‘Desc’ => ‘Ingrese al cliente para este proyecto’,
‘Type’ => ‘text’
),
Matriz (
‘Nombre’ => ‘Presupuesto’,
‘id’ => $ prefix. ‘presupuesto’,
‘Desc’ => ‘Ingrese el presupuesto para este proyecto’,
‘Type’ => ‘text’
),
Matriz (
‘Nombre’ => ‘Imágenes del proyecto’,
‘id’ => $ prefix. ‘proj_images’,
‘Desc’ => ‘Subir y reordenar tantas imágenes como desee!’,
‘Tipo’ => ‘imagen’
),
)
);
…
} … Por supuesto, se ofrecen todas las características para cargar las imágenes y puede cargar y reordinar las imágenes. Me parece muy útil cuando se trata de clientes inconscientes que fácilmente se frustran con las tareas más simples.
¡Llenarlo! Ahora, todos nuestros tipos de publicaciones personalizadas, relaciones de publicación y meta cajas están completas, podemos (finalmente) agregar contenido falso en la cartera. Si no puede ser perturbado, por suerte, he hecho una exportación de mi cartera falsa por usted. Desafortunadamente, necesitará subir algunas fotos. Contenido de arriba a abajo nuestra estructura de contenido tiene oficinas como elementos de contenido de nivel superior, cada oficina tiene muchos miembros y cada miembro pertenece a muchos proyectos. Comencemos creando dos oficinas: “sede” y “ala de diseño”. Vaya a la pantalla “Agregar oficina” e ingrese algunos detalles. No tiene que ser específico, esto es solo por diversión. Después de crear los dos, agregue algunas personas. Una vez más, no tiene que ser específico para los detalles, solo se inventan. ¡Ahora, sin embargo, podemos hacer conexiones entre personas y oficinas! En el meta cuadro “Oficinas conectadas”, haga clic en “Crear conexiones” y seleccione una oficina. Culo. Cada publicación ahora está disponible instantáneamente por una función sobre nuestro tema. Esto realmente brillará cuando alcancemos el nivel del proyecto.
¡Asegúrese de aprovechar al máximo las metaboxes personalizadas que creamos! Después de haber formado algunas personas y conectarlas a algunas oficinas, vaya a los proyectos “Agregar nuevos”. Solo unos pocos proyectos funcionarán. Recuerde subir algunas fotos para que podamos ver cómo funcionan el complemento Strong Meta Box. Asigne personas a cada proyecto, puede ser uno o más. Con esto, podremos ver la relación del proyecto con una oficina.
Cree páginas al final, necesitamos agregar algunas páginas para mostrar la información que acabamos de crear. La creación de la página es fácil: puede eliminar la página “Página por ejemplo”, luego agregar “Oficinas” y “Proyectos”. Nuestras dos oficinas se mostrarán en la página de la oficina, y todos los proyectos se mostrarán en la página del proyecto. Omitimos una página “Miembros del equipo”, ya que se mostrarán en la página única de la oficina. Listado de oficina de Pagina para mostrar una lista de oficina, podemos usar un interesante WordPress -name – Nombre de las plantillas después de una página para crear una plantilla para esto , es decir, para la página “Oficinas”, se puede usar el nombre de un archivo PAGE-OFFFIS.PHP y cualquier cosa dentro al visualizar la página. Duplicado index.php y cambia el nombre en page-fcices.php. Ahora, necesitamos usar una consulta personalizada para mostrar todas las oficinas en la página. Si no está familiarizado con WP_QUEY, esto es lo que el bucle usa para hacerse cargo. Podemos crear nuestra propia copia y pasar por ciertos parámetros para hacerse cargo de ciertas publicaciones. Actualice la plantilla Page-ofress.php entre las filas 21 y 27 a las siguientes. …
‘Office’)); ?>
have_posts ()) :?>
have_posts ()): $ officees_query-> the_post (); ?>



…

Notarás algunas cosas aquí. En primer lugar, iniciamos nuestro nuevo objeto WP_QUEY, detallando que solo queremos publicaciones con el tipo “Oficinas”. Luego cambiamos el bucle de modo que have_posts () y the_post () sean funciones de nuestro nuevo objeto, en lugar de los independientes. Esto asegura que se llamen con nuestros argumentos específicos. En segundo lugar, cambiamos la función get_template_part () para buscar contenido-oficina.php. Debido a que no es existente, por el momento solo usará content.php. Si guarda, ¡visite la página de la oficina, que enumerará nuestras oficinas! Sin embargo, hay algunos cambios que hacer, es decir, omitir los enlaces de respuesta, agregar ubicación, etc. Continúe y duplique content.php y renátelo en contenido-office.php, luego ábralo. En primer lugar, limpie todo el elemento
en la sección IS_Single (), agregue la ubicación de la oficina.
id, ‘p_location’, true); ?

id, ‘p_location’, true); ?>
<a href="?> “title =” “Rel =” Bookmark “>
id, ‘p_location’, true);?>
<!-.
… y si visita la página "Oficinas", ¡debería verse así!
La página del perfil de la oficina ahora, esto está en su lugar, podemos ensuciarnos las manos con un solo perfil de oficina. Aquí, queremos enumerar a todos los miembros del equipo que trabajan en una oficina en particular. Podemos reciclar contenido-FICE.PHP, pero tendremos que crear una nueva plantilla para oficinas individuales. Duplicado sencillo.php y cámbielo en un solo-Offices.php. Eliminar filas 19-25. Esto elimina la navegación en publicaciones y plantilla de comentarios. Muy simple, mostraremos a todos los miembros del equipo asociados con cada oficina. Publics 2 Publics tiene una función que llamamos antes del bucle para agregar los datos de la relación a través de $ Post. Agregue lo siguiente justo antes de have_posts () while (have_posts ()). personas. ¡Fácil! Ahora tenemos una disposición de $ post-> de las personas, podemos volver en contenido officer.php. Debido a que queremos que esto se muestre solo en una sola página, debemos agregar una condición. Continúe y agregue lo siguiente justo antes de la etiqueta del elemento de cierre .
Entre aquí, podemos pasar por $ post-> personas y mostrar fácilmente los miembros del equipo. Queremos una pequeña miniatura y sus nombres, que deben conectarse con su propia página de perfil. En el nuevo condicional que acabamos de crear, agregue el siguiente código.
el equipo
personas como $ persona) :?>
<a href=" id);> “>
post_title; ?>

Aquí tenemos un título para el equipo. Luego una lista que contiene a los miembros del equipo en el interior. Hacemos un bucle a través de $ post-> personas, lo que nos da un objeto post. Cualquier otra cosa es WordPress estándar, cree un enlace a la página con una persona, escupe su miniatura y sus nombres. Regrese al navegador y haga clic en una oficina en la página de la oficina. ¡Esto es lo que deberías ver!
Agregue un poco de CSS y se verá aún mejor. Abra Style.css e inmediatamente por restablecer estilos (alrededor de la línea 178), pegue lo siguiente. /* = CSS personalizado
————————————————– ———— */
.single h2 {
margen de fondo: 10px;
}
.single .list-off-thumbs li {
Pantalla: bloque en línea;
Margen-derecha: 20px;
Margen-izquierda: 0;
Text-Align: Center;
Estilo de lista: ninguno;
}
.single .list-off-thumbs li img {
margen de fondo: 5px;

}
.single .list-off-thumbs li a {
Decoración de texto: ninguna;
} Actualización y debería ver una página más ordenada. ¡La página de perfil de los miembros del equipo Grozav! Ahora terminamos la página de oficinas únicas, podemos comenzar a trabajar en la página con personas solteras. Duplicar single de nuevo.php y cambie el nombre en una sola persona.php. Una vez más, elimine las filas 19-25 para deshacerse de los comentarios y la navegación posterior a la publicación. Para mostrar una lista de publicaciones relacionadas, seguimos el mismo método que en las oficinas de relaciones_to_people, solo con People_TO_Projects. Continúe y agregue la función p2p_type justo antes de la función while (have_posts ()) en una sola gente.php. cada uno_connected ($ wp_query, array, ‘proyectos’); ? Duplicar y content.php, cámbiele el nombre en contenido-personal.php. Agregaremos una sección que muestre toda la información que ha ingresado para ellos, junto con la oficina desde la cual trabajaron los proyectos. En Content-Person.php, borra el elemento nuevamente. Eliminar las filas 26-30, escapando del enlace “Deja una respuesta”. Bajo la fila 20 (título para una sola página de publicación), agregue el siguiente código, que representa todos los metadatos que hemos ingresado previamente en el back-end. Asegúrese de eliminar el título original, de lo contrario aparecerá dos veces.
id, ‘p_role’, true); ?>
id, ‘p_age’, true); ?
id, ‘p_education’, true); ?>
Ahora para proyectos relacionados con una persona. Anteriormente, ya hemos agregado proyectos a la variable de publicación, lo que significa que están disponibles en $ post-> proyectos. En una sola persona.php, busque el contenido de la entrada y compléntelo con lo siguiente.
proyectos Ha trabajado en
proyectos como $ proyecto) :?>
<a href=" id);> “>
post_title; ?>
Probablemente notará que esto es casi idéntico a la página de la oficina, donde se muestran los miembros del equipo. Utilizamos la misma clase de “listado de tumbos” para aprovechar el CSS anterior. Sin embargo, agregaremos un poco más de CSS para que se vea un poco más hermoso. De vuelta donde nuestro CSS personalizado está en estilo.css, agregue lo siguiente. .Single-People .wp-Post-Image, .single-projects .wp-post-image {
Ancho: 150px;
Flotador izquierdo;
Margen-derecha: 20px;
}
.single .Able {
Flotador izquierdo;
Ancho: 300px
}
.single. sobre p {
margen: 10px 0;
}
.single. sobre li {
Estilo de lista: disco; Posión de estilo de lista: interior;
}
.Sing-People. Lista de thumbs {
Limpia los dos;
}
.Sing-People .list-of-thumbs *{
Ancho: 100px;
} Notarás que he agregado un selector para. PROJECTOS SOLOS .WP-POST-IMAGE. Ofreceremos las cosas en la página del proyecto similar a la página de perfil única, para que podamos reciclar, en esencia, la apariencia sin agregar el código adicional. ¡Actualice o navegue por la página de una sola persona a través de la oficina y la página de Voila! Todos los proyectos se enumeran bajo un perfil hermoso y atento.
La página de listado de proyectos no menos importante, crearemos una página de proyecto rápida que enumere todas las imágenes del proyecto (cargadas usando el meta cuadro que creamos tan fácilmente), junto con la oficina diseñada. Hacemos dos cosas aquí, en primer lugar, obtenemos una lista de imágenes cargadas y obtenemos una publicación relacionada con un nivel por encima del proyecto. Esta es la anidación inversa (caminar en el árbol), o más elocuentemente, una relación a través de un tipo de publicación. Pero primero, debemos crear una página de listado de proyectos. Duplicar pageofics.php y cambiar su nombre a la página-projoeccts.php. Ábralo y modifique WP_Query personalizado, reemplazando todas las “oficinas” con “proyectos”. Tu bucle debería verse así ahora. ‘proyectos’)); ?>
have_posts ()) :?>
have_posts ()): $ proyectos_query-> the_post (); ?>
<? Php en el futuro; ? Queremos mantener esta página realmente simple, solo una imagen, título y descripción. Con content-project.php ahora en vigor, estamos casi allí. Sin embargo, para los proyectos, mueva The_Post_Thumbnail () a la línea 27 a la línea 17, que debería estar justo por encima del encabezado de entrada DI. Mueva el contenido del contenido de entrada justo antes de la etiqueta . Reemplace tanto get_post_meta () como se muestra a continuación para mostrar el cliente y el presupuesto personalizados de metal.
id, ‘p_client’, true); ?>
Presupuesto: id, ‘p_budget’, true); ?> Luego agregue el siguiente CSS a nuestros estilos personalizados en Custom.css. .page .type-projects {
Min-altura: 150px
}
.Type-projects .wp-post-image {
Ancho: 150px;
Margen-derecha: 20px;
margen de fondo: 20px;
Flotador izquierdo;
}
.Type-projects .entry-header {

Pantalla: bloque en línea;
Flotador izquierdo;
Ancho: 300px;
} Todos van bien, ahora deberías tener una excelente página de proyecto de aspecto.
La página de proyecto única, en general, es hora de trabajar en la página de proyecto única. Aquí agregaremos todos los metales, haremos un enlace a la oficina utilizando la membresía de la oficina a través de la relación con los miembros del equipo y también mostraremos todas las imágenes cargadas. Al igual que con los otros dos tipos de publicaciones, necesitamos un archivo de Proyects.php. Duplicar senceo-offis.php y modificarlo para solicitar content-project.php en lugar de contenido-office.php. Ya tenemos la función P2P que agrega a las personas al $ Post. También debemos agregar otro p2p_type () para adjuntar los datos de cada miembro del equipo. Haga que el archivo Single-Projects.php se vea así. ! ?>

Aquí, primero usamos la relación People_To_Projects para adjuntar a las personas relacionadas con este proyecto a $ Post. Luego usamos el nuevo objeto $ post-> personas y la relación Officees_TO_People para adjuntar los datos de la oficina de cada persona. El resultado es que $ Post ahora tiene todas las personas adjuntas y cada persona tiene la oficina adjunta a ellas todavía en la publicación. ¡Práctico! Ahora tenemos que usar esa información en content-project.php. Debido a que duplicamos contenido-office.php, ya tenemos el condicional is_single () donde lo necesitamos. Sin embargo, en lugar de los miembros del equipo, queremos mostrar aquí miniaturas de las fotos. Usaremos get_posts () para obtener todos los archivos adjuntos de publicación. Luego, lo revisaremos y mostraremos las imágenes usando wp_get_attachment_image (), una función práctica que adquiere una imagen con una ID particular y forma una etiqueta HTML con un cierto ancho y altura. La razón por la que usamos get_posts en lugar de get_post_custom es usar el orden del menú, lo cual es necesario cuando reordenamos las imágenes detrás de nuestra meta casa. Cambie las últimas líneas is_single () condicionadas por contenido-project.php para que coincida con lo siguiente. ‘adjunto’,
‘post_parent’ => $ post-> id,
‘Orderby’ => ‘menú_order’,
‘Orden’ => ‘ASC’,
‘excluye’ => get_post_thumbnail_id ($ post-> id)
); ?>
Finalmente, queremos agregar la oficina en la que se llevó a cabo el proyecto. Debido a la segunda llamada p2p_type en un solo proyecto.php, es accesible a través de los miembros del equipo adjuntos al proyecto. Sin embargo, queremos mostrarlo solo una vez, por lo que necesitamos a la primera persona adjunta al proyecto y luego a la primera oficina adjunta a ellos. Agregue el código a continuación inmediatamente después del primer conjunto de get_post_meta () que devuelve el cliente y el presupuesto.

!
personas [0]-> oficinas [0]-> post_title; ?>
es una búsqueda bastante larga de datos, pero se ve bastante bien. Obtenga el título de trabajo de la primera oficina del miembro del equipo asociado. Después de todo ese código, su página de proyecto única se verá así.
Finalmente, coloque este CSS en el archivo style.css para que la página del proyecto se vea bien. Bueno, tan hermoso como el tema básico de un veintinho. P.Office-Link {
margen de fondo: 10px;
}
.Project-Images {
Limpia los dos;
} Y, finalmente, la página final del proyecto debería verse así.
¡Eso es todo!Felicitaciones si pasaste por todo esto.Le expliqué cómo usar tres complementos excelentes para comenzar una cartera bien estructurada, utilizando tipos de publicaciones personalizadas, taxonomías personalizadas, cajas de metal personalizadas y relaciones de contenido.A pesar del hecho de que la mayoría de estos componentes tienen una API nativa de WordPress, estos complementos simplifican el proceso para hacer las cosas rápidamente.Sin mencionar que todas son soluciones basadas en el código, por lo que no tiene que preocuparse por la dependencia de la base de datos entre los tribunales del sitio para mantener la coherencia.¡Con estas herramientas, creará carteras maravillosas en el menor tiempo!Descargue la fuente para referencia, cerré el tema.¡No dude en comparar su código con él!Etiquetas: tipos de publicaciones personalizadas


homefinance blog