Problemas con Taxonomías

Inicio Foros WordPress General WordPress.org Problemas con Taxonomías

Etiquetado: 

Este debate contiene 66 respuestas, tiene 3 mensajes y lo actualizó  almendron hace 7 años, 2 meses.

  • Autor
    Publicaciones
  • #20905

    Rodritu
    Participante

    <p>Buenas tardes,</p>
    <p>Tengo una web, La Taberna del Baloncesto, donde uso WordPress, y hoy he creado una taxonomía con el nombre Fuente. Para crearla, he modificado en el archivo functions.php y he escrito lo siguiente:</p>
    <p>function taxonomias_propias() {<br />
    register_taxonomy(‘fuente’, ‘post’, array(<br />
    ‘hierarchical’ =&gt; false, ‘label’ =&gt; ‘Fuente’,<br />
    ‘query_var’ =&gt; true, ‘rewrite’ =&gt; true));</p>
    <p>}<br />
    add_action(‘init’, ‘taxonomias_propias’, 0);</p>
    <p>Hasta aquí todo bien. Se ha creado la Taxonomía y tanto en el menú lateral izquierdo como al ir a insertar una entrada, me salía bien la opción de la taxonomía "Fuente". Uso el tema Arras, y en las opciones del tema he puesto la posibilidad de que en las entradas individuales se muestre la taxonomía personalizada, poniendo el slug correspondiente. </p>
    <p>Pero al insertar la taxonomía en la entrada, no me aparece por ningún sitio, no es visible. ¿Alguien sabe por qué?</p>
    <p>Muchas gracias de antemano
    </p>

  • #51271

    almendron
    Participante

    ¿Podrías poner el código que devuelve la taxonomía en las entradas individuales?

  • #51272

    Rodritu
    Participante

    No he puesto un código, he pensado que no haría falta. ¿Qué código tendría que poner?

    Muchas gracias de antemano

  • #51274

    almendron
    Participante

    Tienes que poner el código correspondiente allí donde quieras que se muestre. Para una entrada individual, debes utilizar “get the term list”

    http://codex.wordpress.org/Function_Reference/get_the_term_list

    En el siguiente enlace encontrarás una explicación bastante buena:

    http://www.emenia.es/taxonomias-en-wordpress/

  • #51275

    Rodritu
    Participante

    Muchas gracias, pero no domino mucho el tema de la programación… Lo que quiero hacer es que se vea la taxonomia que seleccione en la entrada. ¿Cuál de las opciones que dan tendría que poner?

  • #51276

    almendron
    Participante

    Sería algo así como

    “<?php echo get_the_term_list($post->ID, ‘fuente’, ‘Fuente: ‘); ?>” (sin las comillas), donde “fuente” es el nombre de la taxonomía y “Fuente” lo que saldrá antes del enlace.

    Ya me dirás si te funciona. En caso de que no sea así, mañana lo miro.

  • #51277

    Rodritu
    Participante

    Si funciona, muchas gracias!

    ¿se puede modificar la letra, ni que sea ponerlo en negrita? Muchas gracias.

  • #51279

    almendron
    Participante

    Puedes hacer lo siguiente:

    En la hoja de estilos creas un estilo al que llamas por ejemplo “estilotaxo” y después sustituyes “<?php echo get_the_term_list($post->ID, ‘fuente’, ‘Fuente: ‘); ?>” por

    <?php
    $terms = get_the_terms ($post->id, ‘fuente’);
    if (!empty($terms)) {
    echo ‘<div class=”estilotaxo”>’ . ‘texto antes de la taxonomia’ . $terms . ‘</div>’;
    }
    ?>

  • #51292

    Rodritu
    Participante

    Muchas gracias de nuevo. Bueno, tengo dos dudas, a ver si podríais solucionármelas:

    – He puesto añadido en la hoja de estilos, style.css, lo siguiente:

    /* Estilo Taxonomias */
    <?php
    $terms = get_the_terms ($post->id, ‘fuente’);
    if (!empty($terms)) {
    echo ‘<div class=”estilotaxo”>’ . ‘fuente’ . $terms . ‘</div>’;
    }
    ?>

    Como que no se mucho de programación, no se si lo tengo bien o no…

    – Luego otra duda que tengo es, en single.php, si puedo poner en alguna parte de la siguiente función:

    <?php the_content( __(‘<p>Read the rest of this entry »</p>’, ‘arras’) ); ?>

    La función que me dijiste de <?php echo get_the_term_list($post->ID, ‘fuente’, ‘Fuente: ‘); ?>

    Lo digo porque si lo pongo antes de esta función, que es como lo tengo ahora, la taxonomía me sale justo arriba de la entrada, y si lo pongo después de esa función, la taxonomía me lo pone justo debajo de los plugins que tengo de Compartir, Artículos Relacionados, y las etiquetas. Os enseño el ejemplo: [url=http://www.latabernadelbaloncesto.com/2011/04/10/noticias/acb/luis-casimiro-%e2%80%9cno-hay-que-hacer-cuentas-para-los-playoffs%e2%80%9d/]null[/url]

  • #51296

    Rodritu
    Participante

    He estado investigando y ya he colocado bien todo, cambiando un poco la fórmula:

    <?php
    $terms = get_the_term_list ($post->id, ‘fuente’);
    if (!empty($terms)) {
    echo ‘<div class=”estilotaxo”>’ . ‘<p align=”right”><b>Fuente:’ . ‘ ‘ . $terms . ‘</b></p>’ . ‘</div>’;
    }
    ?>

    Ahora lo que me interesaría es, como he dicho en el otro mensaje, poner eso justo debajo del texto, antes de los plugins que tengo de “Compartir:” y “Artículos relacionados”. Os pongo un nuevo link que aquí se ve mejor la taxonomía: [url=http://www.latabernadelbaloncesto.com/2011/04/11/noticias/acb/jaycee-carroll-jugador-de-la-jornada-29/]ejemplo[/url]

  • #51299

    almendron
    Participante

    – He puesto añadido en la hoja de estilos, style.css, lo siguiente:

    /* Estilo Taxonomias */
    <?php
    $terms = get_the_terms ($post->id, ‘fuente’);
    if (!empty($terms)) {
    echo ‘<div class=”estilotaxo”>’ . ‘fuente’ . $terms . ‘</div>’;
    }
    ?>

    ¿Has puesto eso en style.css? Espero que no 🙂

    Intentaré explicarme mejor. Haz lo siguiente:

    1) Ve a style.css y borra lo que has añadido.

    2) El código a poner en single.php es:

    En lugar de “b” he puesto “strong” porque la primera está en desuso y la alineación se la puesto al div.

    Nota: ojo al copiar el código. Entre “<” y “?” – “?” y “>” no dejes el espacio en blanco que aparece.

    3) Ubicación concreta del código. Ve al archivo single.php y mira a ver si encuentras una línea que comienza por “<?php the_content”. Una vez localizada, copia las 4 o 5 siguientes líneas y las pones para que las veamos.

    4) Por último, comentarte que tal vez te fuera más fácil ir a las opciones de tu tema y en la pestaña Layout encontrarás la sección “Display Custom Taxonomies”. Escribes el nombre de tu taxonomía en la caja que hay a tal efecto y listo.

  • #51300

    Rodritu
    Participante

    Lo de Display Custom Taxonomies lo hice pero no se por qué, no me funcionaba. Lo que me comentas del <?php content:

    <div class=”entry-content clearfix”>
    <?php the_content( __(‘<p>Read the rest of this entry »</p>’, ‘arras’) ); ?>
    <?php wp_link_pages(array(‘before’ => __(‘<p>Pages: ‘, ‘arras’),
    ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>
    </div>

    Entonces, he intentado poner el código justo acabar el <?php the_content y ponerlo antes de <?php_wp_link_pages pero ya me salía debajo de los plugins y las etiquetas.

  • #51302

    almendron
    Participante

    Una cosa: al mismo tiempo que contestabas, he corregido el código (había un pequeño fallo).

    Una pregunta: los iconos sociales, ¿has puesto algún código en el single.php?

  • #51303

    Rodritu
    Participante

    No, los pone directamente el mismo plugin, que es el Sociable WP3.

  • #51305

    almendron
    Participante

    Te ahorro las explicaciones. Basta decir que me he vuelto loco y no he sido capaz de conseguirlo.

    Prueba de nuevo a ver si te funciona usando las opciones del propio tema.

  • #51307

    Rodritu
    Participante

    Muchas gracias por todo. Me lo miraré bien a ver si consigo algo.

    Por cierto, sabes si se pueden poner imagenes en las taxonomias? Ejemplo: Si pongo fuente de la Acb, que salga con la misma taxonomia el logo Acb.

    Muchas gracias por todo.

  • #51310

    almendron
    Participante

    Esto debería funcionar:

    Después de png” debería ir [width=”426″ height=”67″] (sin los corchetes] pero se lo come cuando lo publico.

  • #51314

    Rodritu
    Participante

    Ok. Entonces esto es lo que tendría que estar en el single.php, verdad? Luego, sería una imagen por cada taxonomía, entonces donde pondría los enlaces de las imágenes o donde cargaría las imágenes para que saliera?

  • #51320

    LGrusin
    Miembro

    Pongan los códigos entre comillas invertidas.

    El código anterior también se puede poner como:

    El único problema es que se corta si es muy largo. En fin, cuando no es Juana es la hermana… 😉

    Un saludo

  • #51321

    almendron
    Participante

    Eso es: en el single.php

    Ahora bien, el código que te he puesto es un ejemplo. Falta, por ejemplo, la ruta completa a la imagen.

    [img src=”ruta completa”]

    La altura y la anchura se corresponderían a la imagen que pongas.

    Luego te lo miro mejor porque estoy cruzado con el dichoso tema y no me sale nada bien.

  • #51322

    Rodritu
    Participante

    Gracias a los dos. El código de implementar la imagen ya lo he probado y funciona correctamente. Ahora solo falta, como bien dices, la ruta de la imagen. He estado mirando y en total serían 21 imágenes, para las 21 taxonomías, aunque supongo que al encontrar el cófigo, ya será igual para todo.

    En cuanto a lo de poner la taxonomía antes de los plugins, lo que he hecho es dejar el Sociable antes de la taxonomía, y cambiar el plugin de Related Posts, para poner uno que te dan el código y puedes ponerlo donde quieras, y entonces lo he puesto justo debajo de la taxonomía.

  • #51323

    almendron
    Participante

    A ver que por fin tengo una idea más o menos clara del asunto.

    No te interesa insertar una imagen distinta según la fuente. Eso aún lo complicaría más porque deberías asociar una imagen a cada fuente. Es más sencillo una sola que represente a todas.

    Lo primero que tienes que hacer es ir a default.css y añadir lo siguiente:

    Donde XXX es el nombre de la imagen (ponla en la carpeta images del tema), float para que se coloque a la derecha, padding-left para que el texto que va a la derecha de la imagen quede separada de ésta,y el resto son propiedades de la fuente (puedes modificarlas a tu gusto).

    El código para el single.php sería

    <?php
    $terms = get_the_term_list ($post- >id, ‘fuente’);
    if (!empty($terms)) {
    echo ‘<div class=”logofuente” >’ . ‘<b>Fuente:</b> ‘ . $terms . ‘< /div >’;
    }
    ?>

    He tenido que poner “b” porque el “strong” se lo come al publicarlo.. Tú pon “strong”.

    Y ahora solo quedaría la colocación y eso sí es que es irresoluble (yo al menos no se).

  • #51325

    Rodritu
    Participante

    Hojas .css en el editor de wordpress solo tengo user y style.

    ¿Entonces, me olvido de poner una foto por fuente?

  • #51326

    almendron
    Participante

    En tu tema hay una carpeta “css” y dentro de ella otra “styles” y aquí encontrarás default.css que es donde tienes que añadir el estilo “logofuente”.

    Si aplicas lo que te he puesto en mi último comentario, te saldrá una imagen a la izquierda de “Fuente”. Eso sí, será siempre la misma.

    Haz los cambios y ya veremos luego si se puede asociar una taxonomía personalizada a una imagen. Ahora mismo ni idea de cómo hacerlo.

  • #51327

    Rodritu
    Participante

    No me funciona. No te preocupes, lo dejaré sin imágenes. Ya me has ayudado mucho con el tema de que aparezcan las taxonomías. Muchas gracias!

  • #51328

    almendron
    Participante

    Un poco chapucero pero creo que funcionará.

    1) Crea una nueva taxonomia: “imgfuente”.

    2) Crea las imágenes de cada fuente. Todos los nombres en minúscula.

    3) Cuando edites o añadas un post, deberás escribir un valor exactamente igual al nombre de la imagen que has creado (sin la extensión).

    4) El código cambia algo. Si dentro de un rato tengo tiempo, lo pongo. En caso contrario, será ya para mañana.

  • #51329

    almendron
    Participante

    ¿Dejarlo? Ni de coña. Que no se diga que nos puede una máquina jajajaja

  • #51330

    almendron
    Participante

    Dime si este código te funcionó:

    Me interesa en especial cómo pusiste la ruta de la imagen.

  • #51336

    Rodritu
    Participante

    En default.css he puesto abajo del todo lo que me has dicho:

    .logofuente {
    background: url(../../images/XXXX.png) no-repeat scroll left center transparent;
    float:right;
    padding-left: 30px;
    font-family: “Palatino Linotype”,Georgia,”Tahoma”,”Century Schoolbook L”,Arial,Helvetica;
    font-size: 170%;
    line-height: 140%;
    }

    Entonces, como que en images he subido la imagen que quería, logo.png, he cambiado el XXXX.png por logo.png;

    En single.php he cambiado lo que tenía por el

    ‘< div align=”right” >’ . ‘X‘ .
    Fuente: ‘ . $terms . ‘‘ . ‘< /div >’;

    Y no me funciona, me queda de la siguiente manera: [url=http://www.latabernadelbaloncesto.com/2011/04/11/noticias/acb/declaraciones-de-jaycee-carroll-jugador-jornada-29/]ejemplo[/url]

  • #51339

    Rodritu
    Participante

    [img]http://i54.tinypic.com/otozya.jpg[/img]

    Pongo la imagen de como está si introduzco el código ese para poder poner el código que tenía antes y así ni que sea se ve bien la fuente.

  • #51341

    almendron
    Participante

    No hay nada peor que cegarse con un asunto porque solo cometes burradas (lo digo por mi). No me había dado cuenta de que no se puede poner una imagen a pelo porque falla la URL.

    Hay que hacerlo así:

    <img src="<?php bloginfo('stylesheet_directory'); ?>/images/XXX.png" alt="fuente">

    Y ahora sí creo tener una idea completa del asunto. Mañana te indico todo lo que hay que hacer.

  • #51345

    Rodritu
    Participante

    Ok, ya me espero a que me indiques qué hacer jeje

  • #51350

    LGrusin
    Miembro

    Por cierto, que bonito el artículo sobre Jaycee Carrol, menudo monstruo, el Carroll digo… 😉 Lo disfrutaré mientras pueda…

    Un saludo

  • #51353

    Rodritu
    Participante

    Jeje gracias. La verdad es que Carroll es un fuera de serie… creo que podría tener un buen rol de suplente en la NBA

  • #51355

    almendron
    Participante

    [b]Te pido encarecidamente que sigas los pasos con toda exactitud y en el orden que se indica:[/b]

    [i]Nota sobre el código que voy a poner: [b]copia y pega[/b], que he comprobado que lo hace bien, [b]incluso aunque se quede cortado en la publicación[/b][/i]

    1) default.css: elimina el estilo que añadiste.

    2) En single.php elimina lo relativo a la fuente de la noticia, es decir, quitar todo lo comprendido entre “<div class=”estilotaxo”>” y el cierre de este container (“</div>”).

    3) Ahora, el código que empleaste para definir la taxonomía “fuente” debes sustituirlo por

    Con esto ya tenemos dos taxonnomías: Fuente y Logo Fuente.

    4) Crea una carpeta dentro del directorio “arras” y la llamas “logofuentes” (sin las comillas). De momento, sube a esta carpeta una de las imágenes que vayas a emplear. En principio, que la extensión sea “png”. Si quieres usar “gif”, luego te explico como cambiarlo. En cualquier caso, [b]todas las imágenes deben tener la misma extensión[/b].

    Importante: el nombre que pongas a las imágenes será el que luego debas insertar en la taxonomía Logo Fuente cuando edites o crees un post. Así, si subes una imagen llamada [b]abc[/b], deberás luego poner lo mismo.

    5) Ahora vamos al single.php y añades en el lugar que desees las siguiente líneas:

    Extensión de las imágenes: en la línea que comienza por “$rutaimg” verás que pone [b]png[/b]. Sustituye por [b]gif[/b] en caso de uses ese tipo.

    El código devolverá un resultado u otro en función de lo que indiques cuando edites o hagas un nuevo post.

    Y por último, un apunte: una vez hayas hecho todo y compruebes que todo va bien, prueba a realizar un cambio en el código de single.php

    Donde pone [b]get_bloginfo(‘template_directory’)[/b], cambialo por [b]get_theme_root()[/b] (no quietes el punto y coma que hay justo al final de la línea).

    Según el codex es mejor utilizar la segunda opción pero a mi en local me da error. Es muy posible que en el servidor vaya bien.

  • #51356

    almendron
    Participante

    Se me olvidaba: dando por hecho que todo vaya bien, aún quedaría una cosa por resolver. La imagen va a salir con un enlace y es mucho mejor que no salga.

    No me ha dado tiempo a probarlo pero creo que se puede solucionar de la siguiente forma:

    Sustituye

    $imgterms = get_the_term_list ($post->id, 'logofuente');

    por

    $imgterms = get_the_terms ($post->id, 'logofuente');

    Y sin olvidar el punto y coma del final.

  • #51364

    almendron
    Participante

    Corrijo una cosa que ya le he comprobado. Había escrito

    [quote]Donde pone get_bloginfo(‘template_directory’), cambialo por get_theme_root() (no quietes el punto y coma que hay justo al final de la línea).

    Según el codex es mejor utilizar la segunda opción pero a mi en local me da error. Es muy posible que en el servidor vaya bien. [/quote]

    Y debería decir:

    Donde pone [b]get_bloginfo(‘template_directory’)[/b], cambialo por [b]get_template_directory_uri()[/b] (no quites el punto y coma que hay justo al final de la línea).

    [b]El código del single.php queda finalmente así:[/b]

    Aunque aquí no ve todo el código (queda cortado), sale entero si copias y pegas.

    Y ya solo faltaría por ver si el cambio siguiente funciona bien:

    Sustituye

    $imgterms = get_the_term_list ($post->id, 'logofuente');

    por

    $imgterms = get_the_terms ($post->id, 'logofuente');

  • #51367

    Rodritu
    Participante

    Antes de todo, muchas gracias. Hay un pequeño problema.

    Una entrada me queda de la siguiente manera cuando en el single dejo el $imgterms = get_the_term_list ($post->id, ‘logofuente’);

    [img]http://i52.tinypic.com/14azyw0.jpg[/img]

    Y si en single.php pongo el $imgterms = get_the_terms ($post->id, ‘logofuente’);

    [img]http://i55.tinypic.com/2j5gfnr.jpg[/img]

    Entonces te explico los pasos que he seguido, a ver si ves algún error:

    1)He borrado lo que inserté ayer en default.css

    2)He dejado lo siguiente en single.php del código antiguo, borrando todo lo que tenía entre los div:

    <?php
    $terms = get_the_term_list ($post->id, ‘fuente’);
    if (!empty($terms)) {
    echo ‘<div class=”estilotaxo”></div>’;
    }
    ?>

    3) En el archivo functions.php, he borrado lo que había puesto de la taxonomía y he puesto lo que me has dicho:

    function taxonomias_propias() {
    register_taxonomy(‘fuente’, ‘post’, array(
    ‘hierarchical’ => false, ‘label’ => ‘Fuente’,
    ‘query_var’ => true, ‘rewrite’ => true));
    register_taxonomy(‘logofuente’, ‘post’, array(
    ‘hierarchical’ => false, ‘label’ => ‘Logo Fuente’,
    ‘query_var’ => true, ‘rewrite’ => true));
    }
    add_action(‘init’, ‘taxonomias_propias’, 0);

    4) He creado en el directorio arras la carpeta logofuentes, y allí he subido en .png la imagen llamada “meridiano alicante” (sin las comillas). Entonces, he creado dentro de la taxonomía Logo Fuentes un logo llamado meridiano alicante y con el slug “meridiano-alicante” (sin las comillas).

    5) Para acabar, en single.php he añadido el último código que me has dicho en el último mensaje:

    <?php
    $terms = get_the_term_list ($post->id, ‘fuente’);
    $imgterms = get_the_term_list ($post->id, ‘logofuente’);
    $rutabase = get_template_directory_uri();
    $rutaimg = ‘fuente‘;
    if (!empty($terms)) {
    if (!empty($imgterms)) {
    echo ‘<div align=”right”>’ . $rutaimg . ‘ Fuente: ‘ . $terms . ‘</div>’;
    }
    else {
    echo ‘<div align=”right”>’ . ‘Fuente: ‘ . $terms . ‘</div>’;
    }
    }
    ?>

  • #51369

    almendron
    Participante

    El error está en el nombre de la imagen que has subido a la carpeta “logofuentes”. Le has puesto [b]meridiano alicante[/b] con el espacio incluido.

    Cuando nombres una imagen, no emplees espacios, signos espaciales o “ñ”.

    Renombra la imagen como [b]meridiano-alicante[/b]. Si te funciona, es que al coger la taxonomía emplea el slug. Por tanto, cuando añadas una nueva taxonomía, deberás comprobar que el slug de ésta es idéntico al nombre de la imagen. En caso negativo, deberás poner en la taxonomía [b]meridiano-alicante[/b] y olvidarte del slug.

    En el single.php pones

    Una vez que funciones, que debería, sustituyes [b]get_the_term_list[/b] por [b]get_the_terms[/b] a ver si funciona.

  • #51370

    almendron
    Participante

    [b]Dices que has dejado esto en el single.php[/b]:

    2)He dejado lo siguiente en single.php del código antiguo, borrando todo lo que tenía entre los div:

    Esto debes quitarlo también y dejar solo el código para el single.php que te he puesto en la respuesta anterior.

  • #51371

    almendron
    Participante

    Al renombrar la imagen has quitado la extensión. Corrigelo. Es [b]meridiano-alicante.png[/b]

  • #51372

    Rodritu
    Participante

    He quitado lo del single.php que había dejado en el apartado 2).

    Luego he subido todas las imágenes en logofuentes, y entonces he ido poniendo en la zona de administración WordPress “Lofo Fuente” cada imagen, con su nombre (p.ejemplo: meridiano-alicante y de slug meridiano-alicante) y sigue pasándome lo mismo.

  • #51374

    Rodritu
    Participante

    Creo que el problema está al unir la taxonomía Logo Fuente con Fuente o cuando Logo Fuente va a buscar la imgaen, porque si pongo fuente sin imgaen se ve bien…

  • #51378

    almendron
    Participante

    El problema está en que la función “get_the_term_list” devuelve no solo un nombre sino también un enlace. Luego, al pasar esa variable a la ruta de la imagen sale mal. Y la otra que había buscado devuelve un array.

    Tengo que ver cómo extraer solo el nombre.

  • #51380

    Rodritu
    Participante

    Bueno, si no te sale no te preocupes, que ya me has ayudado mucho para poner las taxonomías.

    Otra cosa que no se si se puede hacer es automatizar con según que categorías las imágenes destacadas. Uso el tema arras, y cada día estoy subiendo notícias sobre, por ejemplo, la Acb de baloncesto, que tiene la categoría noticias y subcategoría noticias-acb. Entonces, siempre que subo una notícia Acb pongo la misma imagen destacada, y no se si hay alguna manera de automatizarlo para que cuando wordpress vea que marco la categotia noticias-acb, se ponga automaticamente la foto que pongo siempre.

  • #51382

    almendron
    Participante

    Para la pregunta que haces nueva, mejor abre otro hilo.

    Respecto a que salga las imágenes cuando la fuente, lo he conseguido. Ahora bien, hay dos requisitos:

    1) Cuando edites o crees un nuevo post, puedes poner [b]un solo valor en “Fuente”[/b] y [b]un solo valor en “Logo Fuente”[/b]. Si los dejas en blanco, funcionará (no mostrará nada). Si dejas en blanco “Logo Fuente”, también funcionará (no mostrará la imagen).

    2) En “Logo Fuente”, cuando edites o crees un post, es mejor que uses una sola palabra y todo en minúsculas y sin “ñ” o cualquier otro signo especial. Si empleas más de una palabra, deberás poner un guión bajo en lugar de espacio. Ej: prueba_de_logo_fuente.

    Esto es así porque la función que he utilizado devuelve el nombre que pones en “Logo Fuente” y el nombre de las imágenes deben ser exactamente el mismo.

    Ejemplo:

    1) En el campo “Logo Fuentes” al editar un post añades [b]prueba_de_logo_fuente[/b]

    2) La imagen se tiene que llamar [b]prueba_de_logo_fuente.png[/b] (Fíjate que incluyo la extensión)

    Y ahora el código para el single.php. [b]SUSTITUYE lo que haya por:[/b]

  • #51383

    almendron
    Participante

    Y ahora te explico un poco:

    1) “get_the_term_list”: devuelve el nombre y el link. Al construir la ruta de la imagen, ese link evita que la ruta sea la correcta.

    2) “get_the_terms” devuelve un array. Por eso he utilizado el “foreach” y así extraer el nombre de la taxonomía. Por eso, si pones en un post más de una taxonomía en “Logo Fuente, lo que pasará es que el “foreach” va pasando por cada una de aquéllas. De ahí que te haya dicho que solo añadas una taxonomía. Si pusieras más de una, al final te devolvería el nombre de la última.

  • #51386

    almendron
    Participante

    Nota: cuando hablo de usar una sola fuente y una sola imagen, me refiero a un post y no al total. Puedes tener cuantas fuentes e imágenes quieras, pero en un post solo puedes indicar una fuente y una imagen.

    Si ves que puedes tener artículos con más de una fuente, mi consejo es que uses siempre la misma imagen para que acompañe al texto. Si eliges esta opción, me lo dices y te paso el nuevo código.

  • #51391

    Rodritu
    Participante

    Teoricamente solo habra una fuente no te preocupes

    Ahora tengo en la carpeta logofuentes meridiano-alicante.png. Luego lo cambio y te digo

  • #51396

    almendron
    Participante

    Veo que ya tienes en la carpeta logofuentes la imagen [b]meridiano_alicante.png[/b] (con guión bajo). Ahora edita el post que corresponda y en el campo “Logo Fuentes” pones [b]meridiano_alicante[/b] (sin la extensión y con el guión bajo).

  • #51400

    almendron
    Participante

    Veo que en

    http://www.latabernadelbaloncesto.com/2011/04/13/noticias/noticias-acb/declaraciones-candidatos-jugador-revelacion/

    no sale la imagen. Dime qué has puesto en Logo Fuentes cuando has editado el post y el nombre de la imagen que debería aparecer (incluida la extensión).

  • #51405

    Rodritu
    Participante

    He estado mirando de editar alguna entrada y no me sale la imagen. Te dejo unas fotos:

    [img]http://i55.tinypic.com/n3aubl.jpg[/img]

    Esto es donde tengo alojada la carpeta logofuentes con las diferentes imágenes.

    [img]http://i54.tinypic.com/hulver.jpg[/img]

    Esto es en la zona de administración WordPress, donde tengo la taxonomía logofuentes.

    [img]http://i52.tinypic.com/ilhicy.jpg[/img]

    Y aquí es lo que tengo puesto en, por ejemplo, la entrada de Declaraciones Candidatos Jugador Revelación.

  • #51406

    almendron
    Participante

    Pues debería funcionar. Me he bajado tu tema, he creado las dos taxonomías, he hecho pruebas y funciona perfectamente.

    El problema tienes que estar en el código del single.php. Te voy a poner línea a línea:

    <?php
    $rutabase = get_template_directory_uri();
    $terms = get_the_term_list ($post->id, 'fuente');
    $imgterms = get_the_terms( $post->id, 'imgfuente');
    foreach ($imgterms as $term) {
    $nameimage = $term->name;
    }
    $rutaimg = '<img src="' . $rutabase . '/logofuentes/' . $nameimage . '.png" alt="fuente" />';
    if (!empty($terms)) {
    if (!empty($imgterms)) {
    echo '<div align="right">' . $rutaimg . ' <strong>Fuente:</strong> ' . $terms . '</div>';
    }
    else {
    echo '<div align="right">' . '<strong>Fuente:</strong> ' . $terms . '</div>';
    }
    }
    ?>

  • #51407

    Rodritu
    Participante

    Lo he copiado y me sigue sin funcionar. ¿Tiene que ver algo dónde esté colocado el código?

  • #51408

    almendron
    Participante

    Por lo que veo, solo falla el nombre de la imagen porque la ruta la construye bien. Comprueba que en el single.php tienes exactamente lo mismo que he puesto en mi respuesta anterior. O lo más fácil, copia y pega.

  • #51409

    almendron
    Participante

    Yo lo he colocado justo debajo de la línea

    <?php the_content( __('<p>Read the rest of this entry &raquo;</p>', 'arras') ); ?>

    Y funciona.

  • #51410

    Rodritu
    Participante

    Sí, yo también lo tengo justo aquí. ¿Entonces, no se te ocurre algún problema? Porque no lo entiendo, la verdad….

  • #51412

    almendron
    Participante

    Mira, solo nos queda una posibilidad:

    Coge el single.php y mandamelo para que le eche un vistazo (como adjunto. No me pegues el código). Te paso mi correo: blog@almendron.com.

    Lo pruebo en local y te digo algo. Si es posible, hazlo ahora porque después no se si tendré tiempo para mirarlo.

  • #51414

    almendron
    Participante

    En local funciona perfectamente.

    Solo queda una posibilidad. Mira en functions.php a ver el nombre que le has dado a Logo Fuentes:

    Hay dos líneas que comienzan por “register_taxonomy”. La primera define “fuente”. La segunda “imgfuente” y comienza así:

    register_taxonomy('imgfuente'

    comprueba no hayas puesto algo distinto a [b]imgfuente[/b]

  • #51415

    almendron
    Participante

    El código de functions.php debe ser el siguiente:

  • #51416

    almendron
    Participante

    ¿No habrás duplicado la función “taxonomías propias” en el functions.php? Recuerda que tenías una. El código que te he puesto SUSTITUYE, no se añade.

  • #51439

    Rodritu
    Participante

    El problema estaba en functions.php, en vez de imgfuente ponía logofuente. Ahora ya funciona, solo me falta subir las imágenes de nuevo, porque al cambiar el functions.php se me ha borrado todo, pero eso ya lo haré mañana.

    Muchas gracias por todo!!

  • #51440

    almendron
    Participante

    Anda que ya te vale jajajaja

    Oye, me alegro de que te funcione.

    Y de nada. Yo también he aprendido unas cuantas cosas.

    Un saludo.

  • #51444

    almendron
    Participante

    Otra vez me ha vuelto a pasar: mi respuesta solo la veo cuando estoy logeado. Eso significa que el resto del mundo no la puede leer.

    La vuelvo a poner a ver si esta vez hay suerte:

    Anda que ya te vale jajajaja

    Oye, me alegro de que te funcione.

    Y de nada. Yo también he aprendido unas cuantas cosas.

    Un saludo.

  • #51477

    Rodritu
    Participante

    Me han dicho, y me he fijado, que en los artículos me sale, justo después del sociable, un mensaje de error:

    Warning: Invalid argument supplied for foreach() in /homepages/32/d352397713/htdocs/wp-content/themes/arras/single.php on line 32

    Lo que creo que pasa es que en los artículos no pongo fuente, porque los hago yo. ¿Tengo que poner fuente todo el rato para que no salga eso? Porque si es así, creare una fuente para los artículos…

  • #51493

    LGrusin
    Miembro

    Almendron podrías hacer que comprobara $terms si es nulo o vacio no ejecuta el codigo.

    De esta forma no le da el error en el single.php independientemente de si pone Fuente o no a los artículos.

    Algo como:

    If ($terms) {
    ….
    resto del código
    ….
    }

    Un saludo

  • #51495

    almendron
    Participante

    Me coges de vacaciones y sin herramientas para comprobarlo. Encima resulta que mis respuestas solo las veo si estoy logeado, lo que significa que nadie más la ve.

El foro ‘General WordPress.org’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest