Obtener links de un array

  • Autor Autor Stymart
  • Fecha de inicio Fecha de inicio
Stymart

Stymart

Mi
Verificación en dos pasos activada
Verificado por Binance
Hola tengo unos enlaces que al querer extraer para poner los en un img me sale letra por letra. estoy usando wordpress

$values= array("https://www.blog/imagen1.jpg", "https://www.blog/imagen2.jpg");

He puesto esto
<?php echo $values[0]; ?> me devuelve h
<?php echo $values[1]; ?> me devuelve t

Necesito extraerlo por direcciones para mostrarlo si alguien sabe gracias
 
Última edición:
¿Cuál es el código completo de lo que estás haciendo? ya que allí debería funcionar tal y como lo muestras.
 
¿Cuál es el código completo de lo que estás haciendo? ya que allí debería funcionar tal y como lo muestras.
Hola es de un metabox textarea<?php $values=get_post_meta( get_the_ID(), 'url', true ); ?> ahì estan toda las direcciones si pongo values[0] devuelve una letra existe algun metodo o funcion ?
 
hola,

La variable $values está recibiendo el mensaje como una string y no como una array.

añadir esta línea justo debajo de este código y dice que volverá.

var_dump($values);
 
hola,

La variable $values está recibiendo el mensaje como una string y no como una array.

añadir esta línea justo debajo de este código y dice que volverá.

var_dump($values);
<?php $values=get_post_meta( get_the_ID(), 'url', true ); ?>
<?php var_dump($values); ?>

Me imprimie esto string(0) ""
como muestro los links
 
WordPress Codex:
Return #Return

(mixed) Will be an array if $single is false. Will be value of meta data field if $single is true.

El tercer parametro es $single y lo tienes en true. Significa que es un string, y no un array.
 
Última edición:
Hola [MENTION=42670]LikeStone23[/MENTION] es como dice shadowhck como declaraste la variable lo lee solo como un string prueba asi

PHP:
<?php
	$values = array(
	1 =>	"https://www.blog/imagen1.jpg", 
	2 =>	"https://www.blog/imagen2.jpg"	
	);	
	echo $values[1]."<br>";
	echo $values[2];
?>

espero que le sirva saludos :encouragement:
 
Para agregar links a un array en un bucle, tomando como ejemplo tu línea creo que debería ser así

PHP:
$values[] =get_post_meta( get_the_ID(), 'url', true );
 
[MENTION=42670]LikeStone23[/MENTION] Creo que tienes que ponerlo en false para que de te devuelva el array

PHP:
get_post_meta(get_the_ID(), 'url', false);

pero dijiste que lo agregas en un textarea ? hazle un explode!

PHP:
$img = get_post_meta(get_the_ID(), 'url', false); 
$img = explode(' ', $img);
echo $img[0];
echo $img[1];
 
Última edición:
Te devuelve una letra por que lo toma como una cadena y por ejemplo:
PHP:
<?php
$cadena = 'Hola';
echo $cadena[0]; //imprime 'H'
echo $cadena[1]; //imprime 'o'

Para que la función devuelva un array, el tercer parámetro debe estar en false: https://developer.wordpress.org/reference/functions/get_post_meta/
PHP:
<?php $values=get_post_meta( get_the_ID(), 'url', false); 
echo $values[0];
?>

Saludos
 
[MENTION=42670]LikeStone23[/MENTION] Creo que tienes que ponerlo en false para que de te devuelva el array

PHP:
get_post_meta(get_the_ID(), 'url', false);

pero dijiste que lo agregas en un textarea ? hazle un explode!

PHP:
$img = get_post_meta(get_the_ID(), 'url', false); 
$img = explode(' ', $img);
echo $img[0];
echo $img[1];

el post_meta lo obtengo de un metabox y quiero imprimirlo en la pagina

Me sale esto Warning: explode() expects parameter 2 to be string, array given in

esto sale con var_dump
array(1) { [0]=> string(129) "https://www.blog/imagen1.jpg https://www.blog/imagen2.jpg " }
 
el post_meta lo obtengo de un metabox y quiero imprimirlo en la pagina

Me sale esto Warning: explode() expects parameter 2 to be string, array given in

esto sale con var_dump
array(1) { [0]=> string(129) "https://www.blog/imagen1.jpg https://www.blog/imagen2.jpg " }
El error se debe a que al colocar false retornó un array y por ende explode no puede funcionar...
¿Qué separador estás usando para los enlaces? el explode es en caso de que los separes con un espacio ¿los estás separando con un salto de linea, acaso?
 
El error se debe a que al colocar false retornó un array y por ende explode no puede funcionar...
¿Qué separador estás usando para los enlaces? el explode es en caso de que los separes con un espacio ¿los estás separando con un salto de linea, acaso?

Esta separado con \n
 
Esta separado con \n
Entonces cambia el espacio por \n en el explode.
PHP:
$img = get_post_meta(get_the_ID(), 'url', true);  
$img = explode('\n', $img); 
echo $img[0]; 
echo $img[1];

Creo debería funcionar así, aunque supongo ha de haber una mejor forma de hacerlo.
 
Entonces cambia el espacio por \n en el explode.
PHP:
$img = get_post_meta(get_the_ID(), 'url', true);  
$img = explode('\n', $img); 
echo $img[0]; 
echo $img[1];

Creo debería funcionar así, aunque supongo ha de haber una mejor forma de hacerlo.

lo probe pero me sale el mismo error
 
lo probe pero me sale el mismo error
Entonces prueba con lo siguiente (tal cual) copea y pega:
PHP:
$img = get_post_meta(get_the_ID(), 'url', true);  
$img = explode(PHP_EOL, $img); 
echo $img[0]; 
echo $img[1];

Otra cosa, el error no debería aparecer ya que cambié false a true (no sé si lo hayas hecho también) y por tanto ya no debería ser un array.
 
Entonces prueba con lo siguiente (tal cual) copea y pega:
PHP:
$img = get_post_meta(get_the_ID(), 'url', true);  
$img = explode(PHP_EOL, $img); 
echo $img[0]; 
echo $img[1];

Otra cosa, el error no debería aparecer ya que cambié false a true (no sé si lo hayas hecho también) y por tanto ya no debería ser un array.

funciono con el anterior
<?php
$img=get_post_meta(get_the_ID(), 'url', true);
$img = explode('\n', $img);
echo $img[0];
?>

devolvio los dos links
https://www.blog/imagen1.jpg
https://www.blog/imagen2.jpg

necesito un link si pongo echo $img[1]; no sale nada
 
Atrás
Arriba