Problemas con Obtención de Valores Custom Field en WordPress desde Archivo Externo

  • Autor Autor oijm17
  • Fecha de inicio Fecha de inicio
oijm17

oijm17

Curioso
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Obtener Valor CField (ACF), ID, Título de Entrada WP en Archivo Externo Fuera de Loop

Primero que todo un saludo, para entrar en materia debo explicar esto:

  1. Tengo 1 custom field llamado "mycf" creado con ACF (Advanced Custom Field), dicho custom field contiene valores distintos para cada entrada.
  2. Tengo un Archivo llamado Generator.php ubicado dentro del directorio de mi tema activo en WP (Archivo tercero a WP) el cual obtiene el valor del Custom Field "mycf" lo almacena en una variable y hace una serie de modificaciones a su contenido (Que no nombraré aquí) y finalmente hace un ECHO a dicha variable. También debe obtener y almacenar en variables el ID y Título y Categoría(s) correcta(o/s) de la entrada desde la cual se realizó la petición AJAX (que se dispara solo si se realiza un cambio de valor en cualquiera de los 5 elementos Select del FrontEnd, mas no cuando se carga la entrada o el Single.php).
  3. Tengo 1 función nombrada get_generator() el cual hace un require al código PHP de Generator.php y este muestra su contenido al final (Mediante un ECHO) cuando es disparada.
  4. Tengo un script llamado capture-script2.js que dispara la ejecución de la función get_generator() además de capturar y enviarle al mismo ( get_generator() ) mediante POST 2 valores de un elemento en el FrontEnd (id de Select y value actual de Select) como variables.
  5. Tengo funciones personalizadas en mi functions.php que he nombrado gpostid(), gposttitle(), gpostcat(), y newvaluesmycf(); las cuales obtienen, procesan y retornan los valores de el Custom Field "mycf", ID y Título y Categoría(s) correcta(o/s) de la entrada.

EL PROBLEMA


Mi problema es no que he logrado conseguir, que Generator.php obtenga el valor del Custom Field "mycf", ID y Título y Categoría(s) correcta(o/s) de la entrada desde la cual se modificó el valor del Select; ó en su defecto ni siquiera he logrado obtener algún valor, como si lo he logrado satisfactoriamente invocando las funciones que creé desde Single.php. Pero repito invocando desde Generator.php no funciona o simplemente retorna valores equivocados como el valores de la última entrada que haya creado en WP.

Antes tenia funcionando todo este script con variables de sesión que almacenaban el valor de estas funciones tan pronto cargan las entradas, pero no me habia dado cuenta que si abro, por ejemplo la página de la "Entrada 1", no muevo el select del FrontEnd para nada aún, luego abro la página "Entrada 2" y de nuevo me voy a la pestaña del navegador de la página de "Entrada 1", elijo una de las opciones del elemento Select (Este obtiene los valores indicados en capture-script2.js y dispara la función get_generator() declarada en Functions.php. Los valores que va a arrojar en el echo generator.php son los valores de la "Entrada 2" es decir desde la última entrada que escribió en las variables de sesión.

A continuación voy a publicar parte de mi código que considero importante, en el caso de generator solo llamaré a las funciones y haré un echo (No le haré modificaciones a las variables obtenidas como en mi código original, porque no es relevante.
 
Última edición:
Obtener Valor CField (ACF), ID, Título de Entrada WP en Archivo Externo Fuera de Loop

Primero que todo un saludo, para entrar en materia debo explicar esto:

  1. Tengo 1 custom field llamado "mycf" creado con ACF (Advanced Custom Field), dicho custom field contiene valores distintos para cada entrada.
  2. Tengo un Archivo llamado Generator.php ubicado dentro del directorio de mi tema activo en WP (Archivo tercero a WP) el cual obtiene el valor del Custom Field "mycf" lo almacena en una variable y hace una serie de modificaciones a su contenido (Que no nombraré aquí) y finalmente hace un ECHO a dicha variable. También debe obtener y almacenar en variables el ID y Título y Categoría(s) correcta(o/s) de la entrada desde la cual se realizó la petición AJAX (que se dispara solo si se realiza un cambio de valor en cualquiera de los 5 elementos Select del FrontEnd, mas no cuando se carga la entrada o el Single.php).
  3. Tengo 1 función nombrada get_generator() el cual hace un require al código PHP de Generator.php y este muestra su contenido al final (Mediante un ECHO) cuando es disparada.
  4. Tengo un script llamado capture-script2.js que dispara la ejecución de la función get_generator() además de capturar y enviarle al mismo ( get_generator() ) mediante POST 2 valores de un elemento en el FrontEnd (id de Select y value actual de Select) como variables.
  5. Tengo funciones personalizadas en mi functions.php que he nombrado gpostid(), gposttitle(), gpostcat(), y newvaluesmycf(); las cuales obtienen, procesan y retornan los valores de el Custom Field "mycf", ID y Título y Categoría(s) correcta(o/s) de la entrada.

EL PROBLEMA

Mi problema es no que he logrado conseguir, que Generator.php obtenga el valor del Custom Field "mycf", ID y Título y Categoría(s) correcta(o/s) de la entrada desde la cual se modificó el valor del Select; ó en su defecto ni siquiera he logrado obtener algún valor, como si lo he logrado satisfactoriamente invocando las funciones que creé desde Single.php. Pero repito invocando desde Generator.php no funciona o simplemente retorna valores equivocados como el valores de la última entrada que haya creado en WP.

Antes tenia funcionando todo este script con variables de sesión que almacenaban el valor de estas funciones tan pronto cargan las entradas, pero no me habia dado cuenta que si abro, por ejemplo la página de la "Entrada 1", no muevo el select del FrontEnd para nada aún, luego abro la página "Entrada 2" y de nuevo me voy a la pestaña del navegador de la página de "Entrada 1", elijo una de las opciones del elemento Select (Este obtiene los valores indicados en capture-script2.js y dispara la función get_generator() declarada en Functions.php. Los valores que va a arrojar en el echo generator.php son los valores de la "Entrada 2" es decir desde la última entrada que escribió en las variables de sesión.
A continuación voy a publicar parte de mi código que considero importante, en el caso de generator solo llamaré a las funciones y haré un echo (No le haré modificaciones a las variables obtenidas como en mi código original, porque no es relevante.
Hola,

Para poder obtener correctamente los valores del Custom Field "mycf", ID, Título y Categoría(s) de la entrada desde la cual se realiza la petición AJAX en tu archivo externo Generator.php, es importante asegurarse de que estás obteniendo la información de manera dinámica y específica para cada entrada.

Aquí te dejo algunas sugerencias que podrían ayudarte a solucionar tu problema:

1. En tu archivo Generator.php, asegúrate de que estás obteniendo el ID de la entrada de forma dinámica. Puedes pasar el ID de la entrada como un parámetro en tu petición AJAX y luego utilizarlo para obtener la información específica de esa entrada.

2. En tus funciones personalizadas gpostid(), gposttitle(), gpostcat() y newvaluesmycf(), asegúrate de que estás utilizando correctamente el ID de la entrada para obtener los valores del Custom Field "mycf", Título y Categoría(s) correspondientes a esa entrada específica.

3. Revisa que el contexto en el que se ejecutan las funciones sea el adecuado. En el caso de Generator.php, al estar fuera del loop de WordPress, es posible que necesites establecer el contexto de la entrada de manera manual antes de utilizar las funciones.

Recuerda que es importante asegurarte de que estás obteniendo los valores de forma dinámica y específica para cada entrada, y no utilizando valores estáticos o variables de sesión que puedan causar conflicto al cambiar de entrada.

Espero que estas sugerencias te sean de ayuda para solucionar tu inconveniente. Si necesitas más ayuda con algún fragmento específico de tu código, no dudes en compartirlo para que pueda brindarte una asistencia más precisa.
 

Temas similares

Atrás
Arriba