Módulo 6 – Campos de relación

Lección 1 - Enlace
Basic display (String)

Es muy importante que Retornar valor esté en URL de enlace

Soy un titulo

Basic display (String)
Basic display (Array)

Es muy importante que Retornar valor esté en Matriz de enlace

Soy otro enlace distinto

Basic display (Array)
Lección 2 - Objeto post

Título

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam condimentum, elit et efficitur euismod, metus elit malesuada est, aliquam egestas ligula sapien nec est. Phasellus pellentesque mi et turpis egestas, in aliquam libero suscipit. Donec dignissim nisl sit amet est mollis gravida at quis ex. Donec sed imperdiet lorem, eu ultricies enim. Nullam eu dictum nisl. Morbi malesuada elit eu erat tempor malesuada. In non pulvinar est, eget tempus ligula.

Leer más
Único valor

En este caso es importante que el Formato de retorno sea Objeto post.

En el ejemplo que viene en la documentación, únicamente muestra el post_title, por lo que tendríamos que hacer un var_dump() y extraer aquellos valores que queremos pintar como el contenido y el enlace.

object(WP_Post)#2306 (24) { ["ID"]=> int(2) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2021-06-21 18:47:10" ["post_date_gmt"]=> string(19) "2021-06-21 18:47:10" ["post_content"]=> string(1246) "

This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin' caught in the rain.)

...or something like this:

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

" ["post_title"]=> string(11) "Sample Page" ["post_excerpt"]=> string(82) "Ésta es la página de ejemplo que estamos utilizando para mostrar el objeto post." ["post_status"]=> string(7) "publish" ["comment_status"]=> string(6) "closed" ["ping_status"]=> string(6) "closed" ["post_password"]=> string(0) "" ["post_name"]=> string(11) "sample-page" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2021-07-03 10:45:02" ["post_modified_gmt"]=> string(19) "2021-07-03 08:45:02" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(34) "https://acf.wpcarto.com/?page_id=2" ["menu_order"]=> int(0) ["post_type"]=> string(4) "page" ["post_mime_type"]=> string(0) "" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" }

Sample Page

Ésta es la página de ejemplo que estamos utilizando para mostrar el objeto post.

Leer más
Leer más ID
Único valor
Múltiple valor con setup_postdata array(2) { [0]=> object(WP_Post)#2137 (24) { ["ID"]=> int(2) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2021-06-21 18:47:10" ["post_date_gmt"]=> string(19) "2021-06-21 18:47:10" ["post_content"]=> string(1246) "

This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin' caught in the rain.)

...or something like this:

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

" ["post_title"]=> string(11) "Sample Page" ["post_excerpt"]=> string(82) "Ésta es la página de ejemplo que estamos utilizando para mostrar el objeto post." ["post_status"]=> string(7) "publish" ["comment_status"]=> string(6) "closed" ["ping_status"]=> string(6) "closed" ["post_password"]=> string(0) "" ["post_name"]=> string(11) "sample-page" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2021-07-03 10:45:02" ["post_modified_gmt"]=> string(19) "2021-07-03 08:45:02" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(34) "https://acf.wpcarto.com/?page_id=2" ["menu_order"]=> int(0) ["post_type"]=> string(4) "page" ["post_mime_type"]=> string(0) "" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } [1]=> object(WP_Post)#2141 (24) { ["ID"]=> int(1) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2021-06-21 18:47:10" ["post_date_gmt"]=> string(19) "2021-06-21 18:47:10" ["post_content"]=> string(137) "

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

" ["post_title"]=> string(12) "Hello world!" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "publish" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(6) "closed" ["post_password"]=> string(0) "" ["post_name"]=> string(11) "hello-world" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2021-06-21 18:47:10" ["post_modified_gmt"]=> string(19) "2021-06-21 18:47:10" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(28) "https://acf.wpcarto.com/?p=1" ["menu_order"]=> int(0) ["post_type"]=> string(4) "post" ["post_mime_type"]=> string(0) "" ["comment_count"]=> string(1) "1" ["filter"]=> string(3) "raw" } }

Aquí es importante que ¿Seleccionar múltiples valores? esté en .

Aquí utilizamos la función setup_postdata(), que es una función nativa de WordPress a la que, si le pasamos un objeto post, nos deja utilizar las funciones nativas de dicho objeto post.

Sample Page

Ésta es la página de ejemplo que estamos utilizando para mostrar el objeto post.

Leer más

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Leer más
Múltiple valor con setup_postdata
Múltiple valor sin setup_postdata

En éste no hay que hacer cambios con respecto al anterior en la configuración de los campos personalizados. Lo único que hay que tener en cuenta es que las variables las vamos a definir nosotros con el ->ID.
En el anterior, al utilizar una función nativa que hace referencia a una variable global, que es el post, hay que hacer un wp_reset_postdata. Aquí no lo tenemos que hacer, porque nosotros hacemos las llamadas directamente a los campos que necesitamos.

Este método nos da un poco más de trabajo, pero quizá nos da también más control sobre lo que obtenemos.

Sample Page

Ésta es la página de ejemplo que estamos utilizando para mostrar el objeto post.

Sample Page

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Hello world!
Múltiple valor sin setup_postdata
Lección 3 - Link de página
Valor único

Aquí es importante que ¿Seleccionar múltiples valores? esté en No.

Continue reading

Aquí el problema es que el Anchor tenemos que introducirlo nosotros a mano en el código, por lo que no es muy práctico, y solo valdría para determinados casos.

Valor único
Múltiples valores

Aquí es importante que ¿Seleccionar múltiples valores? esté en .

Si nos fijamos, nos da solamente las URLs

array(2) { [0]=> string(44) "https://acf.wpcarto.com/general/hello-world/" [1]=> string(36) "https://acf.wpcarto.com/sample-page/" }

Further reading

Múltiples valores
Lección 4 - Campo de relación

Este campo nos permite relacionar diferentes contenidos de nuestro WordPress en función de la imagen destacada, buscar por categorías, etc.

Entrada de prueba 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam condimentum, elit et efficitur euismod, metus elit malesuada est, aliquam egestas ligula sapien nec est. Phasellus pellentesque mi et turpis egestas, in aliquam libero suscipit. Donec dignissim nisl sit amet est mollis gravida at quis ex. Donec sed imperdiet lorem, eu ultricies enim. Nullam eu dictum nisl. Morbi malesuada elit eu erat tempor malesuada. In non pulvinar est, eget tempus ligula.

Leer más

Entrada de prueba 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam condimentum, elit et efficitur euismod, metus elit malesuada est, aliquam egestas ligula sapien nec est. Phasellus pellentesque mi et turpis egestas, in aliquam libero suscipit. Donec dignissim nisl sit amet est mollis gravida at quis ex. Donec sed imperdiet lorem, eu ultricies enim. Nullam eu dictum nisl. Morbi malesuada elit eu erat tempor malesuada. In non pulvinar est, eget tempus ligula.

Leer más

Entrada de prueba 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam condimentum, elit et efficitur euismod, metus elit malesuada est, aliquam egestas ligula sapien nec est. Phasellus pellentesque mi et turpis egestas, in aliquam libero suscipit. Donec dignissim nisl sit amet est mollis gravida at quis ex. Donec sed imperdiet lorem, eu ultricies enim. Nullam eu dictum nisl. Morbi malesuada elit eu erat tempor malesuada. In non pulvinar est, eget tempus ligula.

Leer más

Setup Postdata

Entrada 11

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quicquid enim a sapientia proficiscitur, id continuo debet expletum esse omnibus suis partibus; Esse enim quam vellet iniquus iustus poterat inpune. An, partus ancillae sitne in fructu habendus, disseretur inter principes civitatis, P. Duo Reges: constructio interrete. Plane idem, inquit, et maxima quidem, qua fieri nulla maior […]

Leer más
Texto alternativo

Entrada 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quicquid enim a sapientia proficiscitur, id continuo debet expletum esse omnibus suis partibus; Esse enim quam vellet iniquus iustus poterat inpune. An, partus ancillae sitne in fructu habendus, disseretur inter principes civitatis, P. Duo Reges: constructio interrete. Plane idem, inquit, et maxima quidem, qua fieri nulla maior […]

Leer más

Entrada 8

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quicquid enim a sapientia proficiscitur, id continuo debet expletum esse omnibus suis partibus; Esse enim quam vellet iniquus iustus poterat inpune. An, partus ancillae sitne in fructu habendus, disseretur inter principes civitatis, P. Duo Reges: constructio interrete. Plane idem, inquit, et maxima quidem, qua fieri nulla maior […]

Leer más
Setup Postdata
Sin Setup Postdata

Entrada 11

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quicquid enim a sapientia proficiscitur, id continuo debet expletum esse omnibus suis partibus; Esse enim quam vellet iniquus iustus poterat inpune. An, partus ancillae sitne in fructu habendus, disseretur inter principes civitatis, P. Duo Reges: constructio interrete. Plane idem, inquit, et maxima quidem, qua fieri nulla maior […] Leer más
Texto alternativo

Entrada 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quicquid enim a sapientia proficiscitur, id continuo debet expletum esse omnibus suis partibus; Esse enim quam vellet iniquus iustus poterat inpune. An, partus ancillae sitne in fructu habendus, disseretur inter principes civitatis, P. Duo Reges: constructio interrete. Plane idem, inquit, et maxima quidem, qua fieri nulla maior […] Leer más

Entrada 8

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quicquid enim a sapientia proficiscitur, id continuo debet expletum esse omnibus suis partibus; Esse enim quam vellet iniquus iustus poterat inpune. An, partus ancillae sitne in fructu habendus, disseretur inter principes civitatis, P. Duo Reges: constructio interrete. Plane idem, inquit, et maxima quidem, qua fieri nulla maior […] Leer más
Sin Setup Postdata
Lección 5 - Taxonomía

Como en los ejemplos que vienen en la documentación de ACF es necesario utilizar los objetos, en Retornar valor deberemos seleccionar Objeto de Término.

Selección individual

En este primer ejemplo, en Apariencia seleccionaremos los tipos de campos individuales.

object(WP_Term)#2132 (10) { ["term_id"]=> int(4) ["name"]=> string(12) "Categoría 2" ["slug"]=> string(11) "categoria-2" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(4) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(3) ["filter"]=> string(3) "raw" }

Categoría: Categoría 2

Selección individual
Forma múltiple

En este primer ejemplo, en Apariencia seleccionaremos los tipos de campos múltiples.

Categorías

Categorías

Forma múltiple
Lección 6 - Campo de usuario
Uso individual

Para este ejemplo, el Formato de retorno debe ser Array

array(11) { ["ID"]=> int(1) ["user_firstname"]=> string(0) "" ["user_lastname"]=> string(0) "" ["nickname"]=> string(12) "JesusYesares" ["user_nicename"]=> string(12) "jesusyesares" ["display_name"]=> string(12) "JesusYesares" ["user_email"]=> string(26) "webmaster@jesusyesares.com" ["user_url"]=> string(23) "https://acf.wpcarto.com" ["user_registered"]=> string(19) "2021-06-21 18:47:10" ["user_description"]=> string(0) "" ["user_avatar"]=> string(366) "" }

Usuario: JesusYesares

Uso individual
Uso múltiple

Para este ejemplo, el Formato de retorno debe ser object y múltiple debe estar en true.

array(2) { [0]=> object(WP_User)#2172 (8) { ["data"]=> object(stdClass)#2120 (10) { ["ID"]=> string(1) "3" ["user_login"]=> string(8) "fulanito" ["user_pass"]=> string(34) "$P$BSnf/JDU1FVLKSEe.Ytg6clNUYMxdZ1" ["user_nicename"]=> string(8) "fulanito" ["user_email"]=> string(15) "fulanito@yo.com" ["user_url"]=> string(0) "" ["user_registered"]=> string(19) "2021-07-03 12:08:52" ["user_activation_key"]=> string(45) "1625314132:$P$Bl9FPPP8jEqVPU9X478UYxO0B2HAKs0" ["user_status"]=> string(1) "0" ["display_name"]=> string(8) "fulanito" } ["ID"]=> int(3) ["caps"]=> array(1) { ["subscriber"]=> bool(true) } ["cap_key"]=> string(21) "5VD3mI4q_capabilities" ["roles"]=> array(1) { [0]=> string(10) "subscriber" } ["allcaps"]=> array(3) { ["read"]=> bool(true) ["level_0"]=> bool(true) ["subscriber"]=> bool(true) } ["filter"]=> NULL ["site_id":"WP_User":private]=> int(1) } [1]=> object(WP_User)#2149 (8) { ["data"]=> object(stdClass)#2148 (10) { ["ID"]=> string(1) "2" ["user_login"]=> string(21) "Perico de los palotes" ["user_pass"]=> string(34) "$P$BxK/kjAxaZzm0NypqzU4xTPM49M1zh1" ["user_nicename"]=> string(21) "perico-de-los-palotes" ["user_email"]=> string(20) "pericopalotes@yo.com" ["user_url"]=> string(0) "" ["user_registered"]=> string(19) "2021-07-03 12:08:38" ["user_activation_key"]=> string(45) "1625314118:$P$BopxtGbEXCJI0B7OWKWPx2wj6BxhQP." ["user_status"]=> string(1) "0" ["display_name"]=> string(21) "Perico de los palotes" } ["ID"]=> int(2) ["caps"]=> array(1) { ["subscriber"]=> bool(true) } ["cap_key"]=> string(21) "5VD3mI4q_capabilities" ["roles"]=> array(1) { [0]=> string(10) "subscriber" } ["allcaps"]=> array(3) { ["read"]=> bool(true) ["level_0"]=> bool(true) ["subscriber"]=> bool(true) } ["filter"]=> NULL ["site_id":"WP_User":private]=> int(1) } }

Usuarios:

Uso múltiple
Lección 6 - Campo de usuario