Crear shortcode

  • Autor Autor eic2010
  • Fecha de inicio Fecha de inicio
E

eic2010

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola tengo este codigo y quisiera que luego de lograr las dos imagenes cree un shortcode para cada imagen, ejemplo para imagen1 [shortcode1] y para imagen2 [shortcode2] se puede?
PHP:
<?php

$images = array(
    array("imagen" => "http://miweb/wp-content/uploads/imagena.png",
        "link"     => "http://www.google.com/"),
    array("imagen" => "http://miweb/wp-content/uploads/imagenb.png",
        "link"     => "http://www.yahoo.com/"),
    array("imagen" => "http://miweb/wp-content/uploads/imagenc.png",
        "link"     => "http://www.live.com/"),
    array("imagen" => "http://miweb/wp-content/uploads/imagend.png",
        "link"     => "http://www.google.org/")
);

$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);

$link1 = $images[$chosenPosition]["link"];
$image1 = $images[$chosenPosition]["imagen"];

unset($images[$chosenPosition]);
$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);

$link2 = $images[$chosenPosition]["link"];
$image2 = $images[$chosenPosition]["imagen"];

echo '<a  href="'.$link1.'"><img src="'.$image1.'" </a>';
echo '<a  href="'.$link2.'"><img src="'.$image2.'" </a>';
 
No seria mejor pasarle un atributo/parametro al shortcode?
PHP:
add_shortcode('shortcodename','funcionname');//
function funcionname($atts){
$arrayatts = shortcode_atts( array(

    'idimg' => "",
), $atts );

$idimg= $arrayatts['idimg'];

if(empty($idimg){
}
else{
$arrayimgs= [
"1"=>'<a  href="'.$link1.'"><img src="'.$image1.'" </a>',
"2"=>'<a  href="'.$link2.'"><img src="'.$image2.'" </a>'
            ];

echo $arrayimgs[$idimg];
// o return $arrayimgs[$idimg];
}
}
[shortcodename idimg="1"]
 
Última edición:
No seria mejor pasarle un atributo/parametro al shortcode?
PHP:
add_shortcode('shortcodename','funcionname');//
function funcionname($atts){
$arrayatts = shortcode_atts( array(

    'idimg' => "",
), $atts );

$idimg= $arrayatts['idimg'];

if(empty($idcatg){
}
else{
$arrayimgs= [
"1"=>'<a  href="'.$link1.'"><img src="'.$image1.'" </a>',
"2"=>'<a  href="'.$link2.'"><img src="'.$image2.'" </a>'
            ];

echo $arrayimgs[$idimg];
}
}
[shortcodename idimg="1"]


Hola desde ya gracias por responder pero lo puse en functions.php y me sale error en la linea if(empty($idcatg){ debo borrar algo o cambiar algo? mucho de PHP no entiendo asi puse el codigo:

PHP:
$images = array(
    array("imagen" => "http://miweb/wp-content/uploads/imagena.png",
        "link"     => "http://www.google.com/"),
    array("imagen" => "http://miweb/wp-content/uploads/imagenb.png",
        "link"     => "http://www.yahoo.com/"),
    array("imagen" => "http://miweb/wp-content/uploads/imagenc.png",
        "link"     => "http://www.live.com/"),
    array("imagen" => "http://miweb/wp-content/uploads/imagend.png",
        "link"     => "http://www.google.org/")
);

$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);

$link1 = $images[$chosenPosition]["link"];
$image1 = $images[$chosenPosition]["imagen"];

unset($images[$chosenPosition]);
$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);

$link2 = $images[$chosenPosition]["link"];
$image2 = $images[$chosenPosition]["imagen"];

echo '<a  href="'.$link1.'"><img src="'.$image1.'" </a>';
echo '<a  href="'.$link2.'"><img src="'.$image2.'" </a>';


add_shortcode('shortcodename','funcionname');//
function funcionname($atts){
$arrayatts = shortcode_atts( array(

    'idimg' => "",
), $atts );

$idimg= $arrayatts['idimg'];

if(empty($idcatg){
}
else{
$arrayimgs= [
"1"=>'<a  href="'.$link1.'"><img src="'.$image1.'" </a>',
"2"=>'<a  href="'.$link2.'"><img src="'.$image2.'" </a>'
            ];

echo $arrayimgs[$idimg];
}
}
 
cambia el $idcatg por $idimg.
if(empty($idimg))
{

}
Hola desde ya gracias por responder pero lo puse en functions.php y me sale error en la linea if(empty($idcatg){ debo borrar algo o cambiar algo? mucho de PHP no entiendo asi puse el codigo:

PHP:
 
Última edición:
cambia el $idcatg por $idimg.
if(empty($idimg)
{

}
Desde ya te sigo agradeciendo por responder tan rapido pero lo he modificado como me dijiste y ahora me dice error en la linea { osea
PHP:
if(empty($idimg)
{/esta linea me sale error/

}
 
if(empty($idimg))
{

}

así jeje
 
if(empty($idimg))
{

}

así jej

cambie y en functions.php me lo guardo correctamente el tema que ingreso una nueva entrada y pongo el shortcode [shortcodename idimg="1"] y me sale esto :

imag1.webp
 
"Ha fallado la actualización. las respuesta no es una respuesta json válida"

Segun esas paginas, debes cambiar el
echo $arrayimgs[$idimg];
por
return $arrayimgs[$idimg];
 
"Ha fallado la actualización. las respuesta no es una respuesta json válida"

Segun esas paginas, debes cambiar el
echo $arrayimgs[$idimg];
por
return $arrayimgs[$idimg];
No funciono 😟 por ahi me exprese mal yo, lo que quiero es que desde functions.php genere 4 imagenes en shortcode sin repetirse para ponerlas en donde quiera
 
Quizá sea esto lo que buscas

PHP:
function shotcode1() {
return "<img src='https://tuweb/img1.jpg'/>";
}
add_shortcode("shotcode1", "shotcode1");

function shotcode2() {
return "<img src='https://tuweb/img2.jpg'/>";
}
add_shortcode("shotcode2", "shotcode2");

function shotcode3() {
return "<img src='https://tuweb/img3.jpg'/>";
}
add_shortcode("shotcode3", "shotcode3");

Hola desde ya gracias por responder la idea seria algo asi pero que la imagenes sean seleccionadas al azar y sin repetir osea

PHP:
array o cualquiero otra funcion seleciones entre estas 3 imagenes

<img src='https://tuweb/imgA.jpg'/>
<img src='https://tuweb/imgB.jpg'/>
<img src='https://tuweb/imgC.jpg'/>

echo

Image1 (https://tuweb/imgB.jpg)

sin repetir anterior Image2 (https://tuweb/imgC.jpg)

sin repetir anteriores Image3 (https://tuweb/imgA.jpg)


y luego convertirlos en shorcodes


function shotcode1() {
return "<img src='Image1/>";
}
add_shortcode("shotcode1", "shotcode1");

function shotcode2() {
return "<img src='Image2'/>";
}
add_shortcode("shotcode2", "shotcode2");

function shotcode3() {
return "<img src='Image3'/>";
}
add_shortcode("shotcode3", "shotcode3");
 
"Ha fallado la actualización. las respuesta no es una respuesta json válida"

Segun esas paginas, debes cambiar el
echo $arrayimgs[$idimg];
por
return $arrayimgs[$idimg];
Hola como estas? después de intentar varias cosas logre que funcionaran los 4 shortcode pero ahora el problema es que los shortcode repiten las imágenes puede ser que me este faltando algún código?

PHP:
function examplecode01(){

$images = array(
    array("imagen" => "https://miweb.com/wp-content/uploads/2021/09/bauno.jpg",
        "link"     => "http://www.google.com/"),
    array("imagen" => "https://miweb.com/wp-content/uploads/2021/09/bados.jpg",
        "link"     => "http://www.yahoo.com/"),
    array("imagen" => "https://miweb.com/wp-content/uploads/2021/09/batres.jpg",
        "link"     => "http://www.live.com/"),
    array("imagen" => "https://miweb.com/wp-content/uploads/2021/09/bacinco.jpg",
        "link"     => "http://www.google.org/")
);

$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);

$link1 = $images[$chosenPosition]["link"];
$image1 = $images[$chosenPosition]["imagen"];

unset($images[$chosenPosition]);
$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);

$link2 = $images[$chosenPosition]["link"];
$image2 = $images[$chosenPosition]["imagen"];

    unset($images[$chosenPosition]);
$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);     
        
$link3 = $images[$chosenPosition]["link"];
$image3 = $images[$chosenPosition]["imagen"];

unset($images[$chosenPosition]);
$chosen = array_rand($images);
$chosenPosition = array_search($images[$chosen], $images);

$link4 = $images[$chosenPosition]["link"];
$image4 = $images[$chosenPosition]["imagen"];   




 
$i = '<a href="'.$link1.'" class="exampleclass" id="example-code-02"><img class="example01imgclass" src="'.$image1.'" alt="Example 01"/></a>';
return $i;


    
$i = '<a href="'.$link2.'" class="exampleclass" id="example-code-02"><img class="example01imgclass" src="'.$image2.'" alt="Example 01"/></a>';
return $i;
    
    
$i = '<a href="'.$link3.'" class="exampleclass" id="example-code-03"><img class="example01imgclass" src="'.$image3.'" alt="Example 01"/></a>';
return $i;


$i = '<a href="'.$link4.'" class="exampleclass" id="example-code-04"><img class="example01imgclass"
src="'.$image4.'" alt="Example 01"/></a>';
return $i;
}

add_shortcode('example-code-01', 'examplecode01');
add_shortcode('example-code-02', 'examplecode01');
add_shortcode('example-code-03', 'examplecode01');
add_shortcode('example-code-04', 'examplecode01');
 

Temas similares

Atrás
Arriba