Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] Shortcode se coloca siempre al principio de contenido

Estas en el tema de Shortcode se coloca siempre al principio de contenido en el foro de WordPress en Foros del Web. Hola a todos, me está ocurriendo una cosa que no sé si es normal pero creo que no me ha pasado nunca antes. Me he ...
  #1 (permalink)  
Antiguo 14/06/2015, 04:06
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Shortcode se coloca siempre al principio de contenido

Hola a todos,

me está ocurriendo una cosa que no sé si es normal pero creo que no me ha pasado nunca antes.

Me he creado un shortcode con un contenido html dentro.

Hay partes del contenido de la página que quiero que se incluya en el editor de página de wordpress y a continuación añadir este shortcode para a continuación seguir incluyendo texto en el mismo editor. Con esto controlo qué parte quiero que pueda modificar el cliente y cuál no. (Lo típico que hacen algunos templates comerciales)

El caso es que siempre me coloca lo que va en el shortcode primero y no me respeta el orden que yo le doy en el editor de wordpress.

No sé si me he explicado bien. ¿sabéis por qué me ocurre esto? ¿qué puedo estar haciendo mal?

(decir que con que el shortcode tenga tan solo un echo me pasa también)

Un saludo y muchas gracias por vuestra atención.
  #2 (permalink)  
Antiguo 14/06/2015, 08:43
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Shortcode se coloca siempre al principio de contenido

Coloca el código, sin verlo no podemos ayudarte.

Jugando adivinanzas apostaría que imprimes el contenido con echo en lugar de return
  #3 (permalink)  
Antiguo 14/06/2015, 11:11
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Respuesta: Shortcode se coloca siempre al principio de contenido

Hola Arturo,

Lo primero gracias por tu ayuda.

No puse el código porque pensé que lo que pasara dentro del shortcode no podía afectar al orden del contenido de la página, pero según he comprobado con tu respuesta, sí que afecta.

Realmente, lo que usaba era un include() en vez de un echo, aunque también probé con éste para ver si me pasaba y, como comentas en tu mensaje , me pasa en ambos casos.

Éste era, más o menos, el código:

Código PHP:

function xxAddBlock ($atts) {
   
       
$xx_block =  shortcode_atts(array(
                
'file' => ''
       
), $atts);
        
$url_block STYLESHEETPATH "/bloques/" $xx_block['file'] ;

        include(
url_block);
  

};
add_shortcode ('xx_block''xxAddBlock'); 

Como se ve, lo que pretendo es hacer un shortcode en el que le asigne un parámetro que es el nombre del archivo que quiero incluir el el contenido de mi página y me "renderize" dicho archivo php.

Viendo esto, ¿voy por buen camino, o lo mismo hay una manera más simple de hacer esto.?

Hay que tener en cuenta, que en muchos casos, los archivos php que quiero añadir, tienen llamadas a funciones y/o a includes a otros archivos php, vamos que se tienen que generar el código antes de poderle pasar el return:

EN resumen, ¿Se os ocurre manera de hacer esto? o ¿como puedo asignar el archivo php renderizado a una variable que pueda devolver con un return?

(lo mismo me estoy liando más de la cuenta. Soy muy dado a estas cosas)


Gracias, gracias!!!!!

Última edición por JustinKO; 14/06/2015 a las 11:23
  #4 (permalink)  
Antiguo 14/06/2015, 12:18
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Shortcode se coloca siempre al principio de contenido

Realmente sin conocer el contenido de dichos archivos, es muy difícil decirte si existe otra forma mas recomendable, pero lo que si te puedo asegurar es que para este caso en particular hacer un include de estos archivos es lo mismo que un hecho.

para compensarlo puedes probar usar la función ob_start() de PHP
Código PHP:
Ver original
  1. include('archivo.php');
  2. return ob_get_clean();


aunque como te digo sin saber que hacen esos archivos en si es difícil de aconsejarte mas....

Suerte con tu trabajo.
  #5 (permalink)  
Antiguo 15/06/2015, 00:51
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Respuesta: Shortcode se coloca siempre al principio de contenido

Hola,

¡¡Funcionó!!. Muchas, muchas gracias!! ME has ayudado mucho. ayer, después de leer tu primer post estuve buscado un buen rato algo así y no daba con ello. Esto va a mi libro rojo de apuntes. ;)

Un saludo y lo dicho ¡gracias again!!!

Etiquetas: contenido, página, principio, shortcode, siempre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:28.