• Resuelto primeratoma

    (@primeratoma)


    Hola,

    Me presento, ya que es mi primer post en este foro.

    Estoy preparando un blog sobre cine y entre las cosas que quiero incluir se encuentra una sección de críticas. He planteado la web en 2 columnas, siendo la de la derecha la principal. Para cada crítica quiero que en la barra de la izquierda aparezcan unos datos, tales como el cartel (que no sé porqué pero siempre me sale la URL), el titulo original, la fecha, el director y la duración.

    Después de echarle un montón de horas mirando por la red (aviso que no tengo ni idea de php, me he lanzado a la aventura), he dado con los campos personalizados. Pero aquí mi problema.

    1º he conseguido que me salgan en el sidebar, pero salen abajo del todo y sin margen a la izquierda, además de que como he dicho, el cartel no sale, sino una URL.

    2º en la web, no todo van a ser críticas, pero claro, si no relleno esos campos personalizados, me saldrán igualmente en la entrada (vacíos pero saldrán).

    ¿Como puedo hacer para que los campos personalizados sólo aparezcan en determinadas entradas, mejor dicho, en entradas de una determinada categoría?

    Muchísimas gracias.

Viendo 9 respuestas - de la 1 a la 9 (de un total de 9)
  • Pues para ser tu primera aventura, te has buscado un tema complicadillo 😉

    Postea el trozo de código que usas para mostrar los campos y el nombre del fichero que has modificado, si no es un poco complicado ayudar.

    Iniciador del debate primeratoma

    (@primeratoma)

    Hola,

    Muchas gracias por la ayuda.
    La verdad es que pensé que sería sencillo, pensé que no era mucho lo que pedía, pero… creo que me he equivocado 🙁

    Mira, he modificado el archivo «single.php»:

    El principio:

    <?php
    /**
    * The Template for displaying all single posts.
    *
    * @package Cryout Creations
    * @subpackage mantra
    * @since mantra 0.5
    */

    get_header(); ?>

    <section id=»container»>
    <div id=»content» role=»main»>
    <?php cryout_before_content_hook(); ?>

    La parte que he añadido que aparece bien pero sale en la entrada, en vez de salir en el lateral izquierdo:
    <p>
    <?php echo get_post_meta($post->ID, «cartel», true); ?>
    </p>

    <h2>Título original:</h2>
    <p>
    <?php echo get_post_meta($post->ID, «titulo_original», true); ?>
    </p>

    <h2>Dirección:</h2>
    <p>
    <?php echo get_post_meta($post->ID, «direccion», true); ?>
    </p>

    <h2>Año:</h2>
    <p>
    <?php echo get_post_meta($post->ID, «ano», true); ?>
    </p>

    <h2>Duración:</h2>
    <p>
    <?php echo get_post_meta($post->ID, «duracion», true); ?>
    </p>
    </br>

    El resto:
    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

    <div id=»post-<?php the_ID(); ?>» <?php post_class(); ?>>
    <h1 class=»entry-title»><?php the_title(); ?></h1>
    <?php cryout_post_title_hook(); ?>
    <div class=»entry-meta»>
    <?php mantra_posted_on(); cryout_post_meta_hook(); ?>
    </div><!– .entry-meta –>

    <div class=»entry-content»>
    <?php the_content(); ?>
    <?php wp_link_pages( array( ‘before’ => ‘<div class=»page-link»><span>’ . __( ‘Pages:’, ‘mantra’ ), ‘after’ => ‘</span></div>’ ) ); ?>
    </div><!– .entry-content –>

    <?php if ( get_the_author_meta( ‘description’ ) ) : // If a user has filled out their description, show a bio on their entries ?>
    <div id=»entry-author-info»>
    <div id=»author-avatar»>
    <?php echo get_avatar( get_the_author_meta( ‘user_email’ ), apply_filters( ‘mantra_author_bio_avatar_size’, 60 ) ); ?>
    </div><!– #author-avatar –>
    <div id=»author-description»>
    <h2><?php printf( esc_attr__( ‘About %s’, ‘mantra’ ), get_the_author() ); ?></h2>
    <?php the_author_meta( ‘description’ ); ?>
    <div id=»author-link»>
    «>
    <?php printf( __( ‘View all posts by ‘,’mantra’).’%s <span class=»meta-nav»>→</span>’, get_the_author() ); ?>

    </div><!– #author-link –>
    </div><!– #author-description –>
    </div><!– #entry-author-info –>
    <?php endif; ?>

    <div class=»entry-utility»>
    <?php mantra_posted_in(); ?>
    <?php edit_post_link( __( ‘Edit’, ‘mantra’ ), ‘<span class=»edit-link»>’, ‘</span>’ ); cryout_post_footer_hook(); ?>
    </div><!– .entry-utility –>
    </div><!– #post-## –>

    <?php comments_template( », true ); ?>

    <?php endwhile; // end of the loop. ?>

    Esta parte la he añadido a continuación, para que supuestamente me aparezca la información en el sidebar, pero me sale abajo del todo y encima pegado a la izquierda (esto quizá se solucionaría modificando el CSS):

    <?php cryout_after_content_hook(); ?>
    </div><!– #content –>
    <?php get_sidebar(); ?>
    </section><!– #container –>

    <h2>Título original:</h2>
    <p>
    <?php echo get_post_meta($post->ID, «titulo_original», true); ?>
    </p>

    Y el final:

    <?php get_footer(); ?>

    Usa la dirección:
    http://primeratoma.byethost3.com/parker-critica/
    que de momento es sólo donde hay datos.

    Muchas gracias, de nuevo.

    Un saludo.

    Ok, para que no te salgan los campos si no los tienes informados, usa algo parecido a:
    `
    <?php
    $cartel = get_post_meta($post->ID, «cartel», true);
    if( $cartel ){
    ?>
    //código para mostrar cartel o todos los campos, si van siempre juntos
    <?php
    }
    ?>

    Iniciador del debate primeratoma

    (@primeratoma)

    Muchas gracias, pero no entiendo qué quieres decir. 🙁

    Esto:

    <?php
    $cartel = get_post_meta($post->ID, "cartel", true);
    if( $cartel ){
    ?>
    <p>
    <?php echo get_post_meta($post->ID, "cartel", true); ?>
    </p>
    <?php
    }
    ?>

    en lugar de:

    <p>
    <?php echo get_post_meta($post->ID, "cartel", true); ?>
    </p>

    Lo tienes que hacer para cada campo.

    Iniciador del debate primeratoma

    (@primeratoma)

    De acuerdo, lo he añadido (creo que lo he hecho bien), pero ahora me sigue saliendo abajo del todo, pegado al margen izquierdo y además los encabezados de «Título:», «Año:»… en vez de en negrita como antes, me salen en gris.

    Gracias.

    Iniciador del debate primeratoma

    (@primeratoma)

    Otra cosa más, ¿Cómo puedo hacer para que los campos personalizados sólo me salgan en determinadas entradas?

    Muchas gracias.

    Lo que sale abajo de todo no sé «quien» lo está poniendo…. Lo que me pasaste son de los campos que aparecen arriba.

    Respecto a mostrar los campos según entradas, depende del criterio que quieras usar, pero el método es el mismo que te pasé, preguntar («if») por la condición antes de mostrar.

    Pásame un criterio que quieras usar para mostrar los campos y te paso otro ejemplo.

    Iniciador del debate primeratoma

    (@primeratoma)

    Muchas gracias, pero creo que, por el momento lo voy a dejar como está. Más adelante miraré a ver.

    Muchas gracias.

Viendo 9 respuestas - de la 1 a la 9 (de un total de 9)
  • El debate ‘Campos personalizados y su visualización en el blog’ está cerrado a nuevas respuestas.