Entradas etiquetadas con content

WordPress 3.x para desarrolladores: Temas y plantillas, showcase.php y content-intro.php
0Estas dos plantillas permiten crear un nuevo formato de página reestructurando los sidebars y los posts.
SHOWCASE.PHP
Creamos el archivo showcase.php y añadimos el siguiente código:
- <?php
- /**
- * Template Name: Showcase Template
- * Description: A Page Template that showcases Sticky Posts, Asides, and Blog Posts
- *
- * The showcase template in New Theme consists of a featured posts section using sticky posts,
- * another recent posts area (with the latest post shown in full and the rest as a list)
- * and a left sidebar holding aside posts.
- *
- * We are creating two queries to fetch the proper posts and a custom widget for the sidebar.
- *
- * @package WordPress
- * @subpackage New_Theme
- */
-
- // Enqueue showcase script for the slider
- wp_enqueue_script( 'newtheme-showcase', get_template_directory_uri() . '/js/showcase.js', https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'jquery' ), '2011-04-28' );
-
- get_header(); ?>
-
- <div id="primary" class="showcase">
- <div id="content" role="main">
-
- <?php while ( have_posts() ) : the_post(); ?>
-
- <?php
- /**
- * We are using a heading by rendering the_content
- * If we have content for this page, let's display it.
- */
- if ( '' != get_the_content() )
- get_template_part( 'content', 'intro' );
- ?>
-
- <?php endwhile; ?>
-
- <?php
- /**
- * Begin the featured posts section.
- *
- * See if we have any sticky posts and use them to create our featured posts.
- * We limit the featured posts at ten.
- */
- $sticky = get_option( 'sticky_posts' );
-
- // Proceed only if sticky posts exist.
-
- 'post__in' => $sticky,
- 'post_status' => 'publish',
- 'posts_per_page' => 10,
- 'no_found_rows' => true,
- );
-
- // The Featured Posts query.
- $featured = new WP_Query( $featured_args );
-
- // Proceed only if published posts exist
- if ( $featured->have_posts() ) :
-
- /**
- * We will need to count featured posts starting from zero
- * to create the slider navigation.
- */
- $counter_slider = 0;
-
- // Compatibility with versions of WordPress prior to 3.4.
- $header_image_width = get_theme_support( 'custom-header', 'width' );
- else
- $header_image_width = HEADER_IMAGE_WIDTH;
- ?>
-
- <div class="featured-posts">
- <h1 class="showcase-heading"><?php _e( 'Featured Post', 'newtheme' ); ?></h1>
-
- <?php
- // Let's roll.
- while ( $featured->have_posts() ) : $featured->the_post();
-
- // Increase the counter.
- $counter_slider++;
-
- /**
- * We're going to add a class to our featured post for featured images
- * by default it'll have the feature-text class.
- */
- $feature_class = 'feature-text';
-
- if ( has_post_thumbnail() ) {
- // ... but if it has a featured image let's add some class
- $feature_class = 'feature-image small';
-
- // Hang on. Let's check this here image out.
- $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( $header_image_width, $header_image_width ) );
-
- // Is it bigger than or equal to our header?
- if ( $image[1] >= $header_image_width ) {
- // If bigger, let's add a BIGGER class. It's EXTRA classy now.
- $feature_class = 'feature-image large';
- }
- }
- ?>
-
- <section class="featured-post <?php echo $feature_class; ?>" id="featured-post-<?php echo $counter_slider; ?>">
-
- <?php
- /**
- * If the thumbnail is as big as the header image
- * make it a large featured post, otherwise render it small
- */
- if ( has_post_thumbnail() ) {
- if ( $image[1] >= $header_image_width )
- $thumbnail_size = 'large-feature';
- else
- $thumbnail_size = 'small-feature';
- ?>
- <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail( $thumbnail_size ); ?></a>
- <?php
- }
- ?>
- <?php get_template_part( 'content', 'featured' ); ?>
- </section>
- <?php endwhile; ?>
-
- <?php
- // Show slider only if we have more than one featured post.
- if ( $featured->post_count > 1 ) :
- ?>
- <nav class="feature-slider">
- <ul>
- <?php
-
- // Reset the counter so that we end up with matching elements
- $counter_slider = 0;
-
- // Begin from zero
- rewind_posts();
-
- // Let's roll again.
- while ( $featured->have_posts() ) : $featured->the_post();
- $counter_slider++;
- if ( 1 == $counter_slider )
- $class = 'class="active"';
- else
- $class = '';
- ?>
- <li><a href="#featured-post-<?php echo $counter_slider; ?>" title="<?php printf( esc_attr__( 'Featuring: %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" <?php echo $class; ?>></a></li>
- <?php endwhile; ?>
- </ul>
- </nav>
- <?php endif; // End check for more than one sticky post. ?>
- </div><!-- .featured-posts -->
- <?php endif; // End check for published posts. ?>
- <?php endif; // End check for sticky posts. ?>
-
- <section class="recent-posts">
- <h1 class="showcase-heading"><?php _e( 'Recent Posts', 'newtheme' ); ?></h1>
-
- <?php
-
- // Display our recent posts, showing full content for the very latest, ignoring Aside posts.
- 'order' => 'DESC',
- 'post__not_in' => get_option( 'sticky_posts' ),
- 'taxonomy' => 'post_format',
- 'terms' => https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'post-format-aside', 'post-format-link', 'post-format-quote', 'post-format-status' ),
- 'field' => 'slug',
- 'operator' => 'NOT IN',
- ),
- ),
- 'no_found_rows' => true,
- );
-
- // Our new query for the Recent Posts section.
- $recent = new WP_Query( $recent_args );
-
- // The first Recent post is displayed normally
- if ( $recent->have_posts() ) : $recent->the_post();
-
- // Set $more to 0 in order to only get the first part of the post.
- global $more;
- $more = 0;
-
- get_template_part( 'content', get_post_format() );
-
- echo '<ol class="other-recent-posts">';
-
- endif;
-
- // For all other recent posts, just display the title and comment status.
- while ( $recent->have_posts() ) : $recent->the_post(); ?>
-
- <li class="entry-title">
- <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
- <span class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?>
- </span>
- </li>
-
- <?php
- endwhile;
-
- // If we had some posts, close the <ol>
- if ( $recent->post_count > 0 )
- echo '</ol>';
- ?>
- </section><!-- .recent-posts -->
-
- <div class="widget-area" role="complementary">
- <?php if ( ! dynamic_sidebar( 'sidebar-2' ) ) : ?>
-
- <?php
- the_widget( 'New_Theme_Ephemera_Widget', '', https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
- ?>
-
- <?php endif; // end sidebar widget area ?>
- </div><!-- .widget-area -->
-
- </div><!-- #content -->
- </div><!-- #primary -->
-
- <?php get_footer(); ?>
Lo primero que hace el código es indicar a WordPress que cargue el archivo showcase.js, que nosotros deberemos copiar a nuestra carpeta en la ruta correcta.
- <?php while ( have_posts() ) : the_post(); ?>
-
- <?php
- /**
- * We are using a heading by rendering the_content
- * If we have content for this page, let's display it.
- */
- if ( '' != get_the_content() )
- get_template_part( 'content', 'intro' );
- ?>
-
- <?php endwhile; ?>
A continuación se carga el contenido de la página, normalmente una descripción, o una galería de imágenes.
- <?php
- /**
- * Begin the featured posts section.
- *
- * See if we have any sticky posts and use them to create our featured posts.
- * We limit the featured posts at ten.
- */
- $sticky = get_option( 'sticky_posts' );
-
- // Proceed only if sticky posts exist.
-
- 'post__in' => $sticky,
- 'post_status' => 'publish',
- 'posts_per_page' => 10,
- 'no_found_rows' => true,
- );
-
- // The Featured Posts query.
- $featured = new WP_Query( $featured_args );
-
- // Proceed only if published posts exist
- if ( $featured->have_posts() ) :
-
- /**
- * We will need to count featured posts starting from zero
- * to create the slider navigation.
- */
- $counter_slider = 0;
-
- // Compatibility with versions of WordPress prior to 3.4.
- $header_image_width = get_theme_support( 'custom-header', 'width' );
- else
- $header_image_width = HEADER_IMAGE_WIDTH;
- ?>
-
- <div class="featured-posts">
- <h1 class="showcase-heading"><?php _e( 'Featured Post', 'newtheme' ); ?></h1>
-
- <?php
- // Let's roll.
- while ( $featured->have_posts() ) : $featured->the_post();
-
- // Increase the counter.
- $counter_slider++;
-
- /**
- * We're going to add a class to our featured post for featured images
- * by default it'll have the feature-text class.
- */
- $feature_class = 'feature-text';
-
- if ( has_post_thumbnail() ) {
- // ... but if it has a featured image let's add some class
- $feature_class = 'feature-image small';
-
- // Hang on. Let's check this here image out.
- $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( $header_image_width, $header_image_width ) );
-
- // Is it bigger than or equal to our header?
- if ( $image[1] >= $header_image_width ) {
- // If bigger, let's add a BIGGER class. It's EXTRA classy now.
- $feature_class = 'feature-image large';
- }
- }
- ?>
-
- <section class="featured-post <?php echo $feature_class; ?>" id="featured-post-<?php echo $counter_slider; ?>">
-
- <?php
- /**
- * If the thumbnail is as big as the header image
- * make it a large featured post, otherwise render it small
- */
- if ( has_post_thumbnail() ) {
- if ( $image[1] >= $header_image_width )
- $thumbnail_size = 'large-feature';
- else
- $thumbnail_size = 'small-feature';
- ?>
- <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail( $thumbnail_size ); ?></a>
- <?php
- }
- ?>
- <?php get_template_part( 'content', 'featured' ); ?>
- </section>
- <?php endwhile; ?>
-
- <?php
- // Show slider only if we have more than one featured post.
- if ( $featured->post_count > 1 ) :
- ?>
- <nav class="feature-slider">
- <ul>
- <?php
-
- // Reset the counter so that we end up with matching elements
- $counter_slider = 0;
-
- // Begin from zero
- rewind_posts();
-
- // Let's roll again.
- while ( $featured->have_posts() ) : $featured->the_post();
- $counter_slider++;
- if ( 1 == $counter_slider )
- $class = 'class="active"';
- else
- $class = '';
- ?>
- <li><a href="#featured-post-<?php echo $counter_slider; ?>" title="<?php printf( esc_attr__( 'Featuring: %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" <?php echo $class; ?>></a></li>
- <?php endwhile; ?>
- </ul>
- </nav>
- <?php endif; // End check for more than one sticky post. ?>
- </div><!-- .featured-posts -->
- <?php endif; // End check for published posts. ?>
- <?php endif; // End check for sticky posts. ?>
A continuación comprueba si existen post destacados para mostrar, si es así se inicia el bucle para procesar los datos y mostrar el código html correspondiente.
- <section class="recent-posts">
- <h1 class="showcase-heading"><?php _e( 'Recent Posts', 'newtheme' ); ?></h1>
-
- <?php
-
- // Display our recent posts, showing full content for the very latest, ignoring Aside posts.
- 'order' => 'DESC',
- 'post__not_in' => get_option( 'sticky_posts' ),
- 'taxonomy' => 'post_format',
- 'terms' => https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'post-format-aside', 'post-format-link', 'post-format-quote', 'post-format-status' ),
- 'field' => 'slug',
- 'operator' => 'NOT IN',
- ),
- ),
- 'no_found_rows' => true,
- );
-
- // Our new query for the Recent Posts section.
- $recent = new WP_Query( $recent_args );
-
- // The first Recent post is displayed normally
- if ( $recent->have_posts() ) : $recent->the_post();
-
- // Set $more to 0 in order to only get the first part of the post.
- global $more;
- $more = 0;
-
- get_template_part( 'content', get_post_format() );
-
- echo '<ol class="other-recent-posts">';
-
- endif;
-
- // For all other recent posts, just display the title and comment status.
- while ( $recent->have_posts() ) : $recent->the_post(); ?>
-
- <li class="entry-title">
- <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
- <span class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?>
- </span>
- </li>
-
- <?php
- endwhile;
-
- // If we had some posts, close the <ol>
- if ( $recent->post_count > 0 )
- echo '</ol>';
- ?>
- </section><!-- .recent-posts -->
Después tenemos los post más recientes, que se obtienen de la misma manera que los destacados.
- <div class="widget-area" role="complementary">
- <?php if ( ! dynamic_sidebar( 'sidebar-2' ) ) : ?>
-
- <?php
- the_widget( 'New_Theme_Ephemera_Widget', '', https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
- ?>
-
- <?php endif; // end sidebar widget area ?>
- </div><!-- .widget-area -->
Por último cargamos el widget que mostrará un listado de links a diferentes post.
CONTENT-INTRO.PHP
Creamos el archivo content-intro.php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying page content in the showcase.php page template
- *
- * @package WordPress
- * @subpackage New_Theme
- */
- ?>
-
- <article id="post-<?php the_ID(); ?>" <?php post_class( 'intro' ); ?>>
- <header class="entry-header">
- <h2 class="entry-title"><?php the_title(); ?></h2>
- </header><!-- .entry-header -->
-
- <div class="entry-content">
- <?php the_content(); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </div><!-- .entry-content -->
- </article><!-- #post-<?php the_ID(); ?> -->
Código sencillo, simplemente da formato al contenido.

WordPress 3.x para desarrolladores: Temas y plantillas, content-image.php, content-link.php, content-quote.php y content-status.php
0CONTENT-IMAGE.PHP
Creamos el archivo content-image.php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying posts in the Image Post Format on index and archive pages
- *
- * Learn more: http://codex.wordpress.org/Post_Formats
- *
- * @package WordPress
- * @subpackage New_Theme
- */
- ?>
- <article id="post-<?php the_ID(); ?>" <?php post_class( 'indexed' ); ?>>
- <header class="entry-header">
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Image', 'newtheme' ); ?></h3>
- </hgroup>
-
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( "Reply", 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
- </header><!-- .entry-header -->
-
- <div class="entry-content">
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
-
- <footer class="entry-meta">
- <div class="entry-meta">
- <?php
- printf( __( '<a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s" pubdate>%3$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%4$s" title="%5$s" rel="author">%6$s</a></span></span>', 'newtheme' ),
- esc_url( get_permalink() ),
- get_the_date( 'c' ),
- get_the_date(),
- esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
- get_the_author()
- );
- ?>
- </div><!-- .entry-meta -->
- <div class="entry-meta">
- <?php
- /* translators: used between list items, there is a space after the comma */
- $categories_list = get_the_category_list( __( ', ', 'newtheme' ) );
- if ( $categories_list ):
- ?>
- <span class="cat-links">
- <?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-cat-links', $categories_list ); ?>
- </span>
- <?php endif; // End if categories ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $tags_list = get_the_tag_list( '', __( ', ', 'newtheme' ) );
- if ( $tags_list ): ?>
- <span class="tag-links">
- <?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list ); ?>
- </span>
- <?php endif; // End if $tags_list ?>
-
- <?php if ( comments_open() ) : ?>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; // End if comments_open() ?>
- </div><!-- .entry-meta -->
-
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
Este tipo de contenido simplemente muestra una imagen y su respectivo título.
CONTENT-LINK.PHP
Creamos el archivo content-link.php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying posts in the Link Post Format on index and archive pages
- *
- * Learn more: http://codex.wordpress.org/Post_Formats
- *
- * @package WordPress
- * @subpackage New_Theme
- */
- ?>
-
- <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
- <header class="entry-header">
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Link', 'newtheme' ); ?></h3>
- </hgroup>
-
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Reply', 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
- </header><!-- .entry-header -->
-
- <?php if ( is_search() ) : // Only display Excerpts for Search ?>
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- </div><!-- .entry-summary -->
- <?php else : ?>
- <div class="entry-content">
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
- <?php endif; ?>
-
- <footer class="entry-meta">
- <?php newtheme_posted_on(); ?>
- <?php if ( comments_open() ) : ?>
- <span class="sep"> | </span>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; ?>
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
Este contenido es más sencillo aún. Simplemente mostramos un link o un conjunto de estos.
CONTENT-QUOTE.PHP
Creamos el archivo content-quote.php y añadimos el siguiente código:
- <?php
-
- <?php
- /**
- * The default template for displaying content
- *
- * @package WordPress
- * @subpackage New_Theme
- */
- ?>
-
- <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
- <header class="entry-header">
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Quote', 'newtheme' ); ?></h3>
- </hgroup>
-
- <div class="entry-meta">
- <?php newtheme_posted_on(); ?>
- </div><!-- .entry-meta -->
-
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Reply', 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
- </header><!-- .entry-header -->
-
- <?php if ( is_search() ) : // Only display Excerpts for Search ?>
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- </div><!-- .entry-summary -->
- <?php else : ?>
- <div class="entry-content">
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
- <?php endif; ?>
-
- <footer class="entry-meta">
- <?php $show_sep = false; ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $categories_list = get_the_category_list( __( ', ', 'newtheme' ) );
- if ( $categories_list ):
- ?>
- <span class="cat-links">
- <?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-cat-links', $categories_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if categories ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $tags_list = get_the_tag_list( '', __( ', ', 'newtheme' ) );
- if ( $tags_list ):
- if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="tag-links">
- <?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if $tags_list ?>
-
- <?php if ( comments_open() ) : ?>
- <?php if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; // End if comments_open() ?>
-
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
Más de lo mismo, lo único que cambia es que aparece un subtítulo indicando que es una cita.
CONTENT-STATUS.PHP
Creamos el archivo content-status.php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying posts in the Status Post Format on index and archive pages
- *
- * Learn more: http://codex.wordpress.org/Post_Formats
- *
- * @package WordPress
- * @subpackage New_Theme
- */
- ?>
-
- <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
- <header class="entry-header">
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Status', 'newtheme' ); ?></h3>
- </hgroup>
-
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Reply', 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
- </header><!-- .entry-header -->
-
- <?php if ( is_search() ) : // Only display Excerpts for Search ?>
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- </div><!-- .entry-summary -->
- <?php else : ?>
- <div class="entry-content">
- <div class="avatar"><?php echo get_avatar( get_the_author_meta( 'ID' ), apply_filters( 'newtheme_status_avatar', '65' ) ); ?></div>
-
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
- <?php endif; ?>
-
- <footer class="entry-meta">
- <?php newtheme_posted_on(); ?>
- <?php if ( comments_open() ) : ?>
- <span class="sep"> | </span>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; ?>
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
En este caso se añade la imagen del perfil del autor o avatar para acompañar al contenido.

WordPress 3.x para desarrolladores: Temas y plantillas, content-aside.php, content-featured.php y content-gallery.php
0Durante los próximos post, incluido este, explicaré las últimas plantillas que quedan por crear de nuestro tema, después continuaré el tutorial con los plugins.
CONTENT-ASIDE.PHP
WordPress dispone de varios formatos de post que pueden ser personalizados (ver: http://codex.wordpress.org/Post_Formats), entre ellos se encuentra aside, que es parecido a una actualización de Facebook, es decir, no tiene título.
Creamos el archivo content-aside.php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying posts in the Aside Post Format on index and archive pages
- *
- * Learn more: http://codex.wordpress.org/Post_Formats
- *
- * @package WordPress
- * @subpackage New_Theme
- */
- ?>
-
- <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
- <header class="entry-header">
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Aside', 'newtheme' ); ?></h3>
- </hgroup>
-
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Reply', 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
- </header><!-- .entry-header -->
-
- <?php if ( is_search() ) : // Only display Excerpts for Search ?>
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- </div><!-- .entry-summary -->
- <?php else : ?>
- <div class="entry-content">
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
- <?php endif; ?>
-
- <footer class="entry-meta">
- <?php newtheme_posted_on(); ?>
- <?php if ( comments_open() ) : ?>
- <span class="sep"> | </span>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; ?>
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
Como veis, lo primero que se crea es la cabecera del post, pero en este caso, en vez de mostrar el título del post se mostrará el texto «Aside«. El resto del código es prácticamente igual al de un post normal: se muestra el contenido del post y se crea el pie de este con los metadatos y los correspondientes links, entre ellos el de editar.
CONTENT-FEATURED.PHP
Los post featured son los post destacados de los que ya hemos hablado con anterioridad. Aunque este tipo de post no aparece en la lista de formatos de post, si es una características de los post normales que se puede personalizar con su propia plantilla.
Por tanto crearemos el archivo content-featured.php y añadiremos el siguiente código:
- <?php
- /**
- * The template for displaying content featured in the showcase.php page template
- *
- * @package WordPress
- * @subpackage New_Theme
- */
-
- global $feature_class;
- ?>
- <article id="post-<?php the_ID(); ?>" <?php post_class( $feature_class ); ?>>
- <header class="entry-header">
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
-
- <div class="entry-meta">
- <?php newtheme_posted_on(); ?>
- </div><!-- .entry-meta -->
- </header><!-- .entry-header -->
-
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
-
- <footer class="entry-meta">
- <?php
- /* translators: used between list items, there is a space after the comma */
- $tag_list = get_the_tag_list( '', __( ', ', 'newtheme' ) );
- if ( '' != $tag_list ) {
- $utility_text = __( 'This entry was posted in %1$s and tagged %2$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'newtheme' );
- } else {
- $utility_text = __( 'This entry was posted in %1$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'newtheme' );
- }
- $utility_text,
- /* translators: used between list items, there is a space after the comma */
- get_the_category_list( __( ', ', 'newtheme' ) ),
- $tag_list,
- esc_url( get_permalink() ),
- the_title_attribute( 'echo=0' )
- );
- ?>
-
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- .entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
Lo mismo de antes, se muestra el título, se muestra el contenido y se muestra el pie del post, la única diferencia sería que, en este caso también mostramos el texto «FEATURED» o «DESTACADO» en la página principal.
CONTENT-GALLERY.PHP
Este tipo de contenido nos permite mostrar galerías de imágenes, adjuntando las imágenes al post.
Creamos el archivo content-gallery.php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying posts in the Gallery Post Format on index and archive pages
- *
- * Learn more: http://codex.wordpress.org/Post_Formats
- *
- * @package WordPress
- * @subpackage New_Theme
- */
- ?>
-
- <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
- <header class="entry-header">
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Gallery', 'newtheme' ); ?></h3>
- </hgroup>
-
- <div class="entry-meta">
- <?php newtheme_posted_on(); ?>
- </div><!-- .entry-meta -->
- </header><!-- .entry-header -->
-
- <?php if ( is_search() ) : // Only display Excerpts for search pages ?>
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- </div><!-- .entry-summary -->
- <?php else : ?>
- <div class="entry-content">
- <?php if ( post_password_required() ) : ?>
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
-
- <?php else : ?>
- <?php
- $images = get_children( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => 999 ) );
- if ( $images ) :
- $image_img_tag = wp_get_attachment_image( $image->ID, 'thumbnail' );
- ?>
-
- <figure class="gallery-thumb">
- <a href="<?php the_permalink(); ?>"><?php echo $image_img_tag; ?></a>
- </figure><!-- .gallery-thumb -->
-
- <p><em><?php printf( _n( 'This gallery contains <a %1$s>%2$s photo</a>.', 'This gallery contains <a %1$s>%2$s photos</a>.', $total_images, 'newtheme' ),
- 'href="' . esc_url( get_permalink() ) . '" title="' . sprintf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ) . '" rel="bookmark"',
- number_format_i18n( $total_images )
- ); ?></em></p>
- <?php endif; ?>
- <?php the_excerpt(); ?>
- <?php endif; ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
- <?php endif; ?>
-
- <footer class="entry-meta">
- <?php $show_sep = false; ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $categories_list = get_the_category_list( __( ', ', 'newtheme' ) );
- if ( $categories_list ):
- ?>
- <span class="cat-links">
- <?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-cat-links', $categories_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if categories ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $tags_list = get_the_tag_list( '', __( ', ', 'newtheme' ) );
- if ( $tags_list ):
- if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="tag-links">
- <?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if $tags_list ?>
-
- <?php if ( comments_open() ) : ?>
- <?php if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'newtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; // End if comments_open() ?>
-
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
La parte más importante de este código es el siguiente extracto:
- <?php if ( post_password_required() ) : ?>
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
-
- <?php else : ?>
- <?php
- $images = get_children( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => 999 ) );
- if ( $images ) :
- $image_img_tag = wp_get_attachment_image( $image->ID, 'thumbnail' );
- ?>
-
- <figure class="gallery-thumb">
- <a href="<?php the_permalink(); ?>"><?php echo $image_img_tag; ?></a>
- </figure><!-- .gallery-thumb -->
-
- <p><em><?php printf( _n( 'This gallery contains <a %1$s>%2$s photo</a>.', 'This gallery contains <a %1$s>%2$s photos</a>.', $total_images, 'newtheme' ),
- 'href="' . esc_url( get_permalink() ) . '" title="' . sprintf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ) . '" rel="bookmark"',
- number_format_i18n( $total_images )
- ); ?></em></p>
- <?php endif; ?>
Esta parte es la que calcula el número de imágenes en el post y las convierte en una galería.

WordPress 3.x para desarrolladores: Temas y plantillas, index.php y content.php
0Con el anterior post os dejé un poco colgados con el tutorial, expliqué las plantillas más básicas y la creación de las plantillas de la cabecera y el pie, además de la explicación del código de cada una. Pero aun falta la parte más importante de todas, el contenido.
EL BUCLE ( THE LOOP )
Bueno, vamos al lío y explico esto del bucle. En el archivo index.php añadimos el siguiente código entre wp_head() y wp_footer().
- <div id="primary">
- <div id="content" role="main">
-
- <?php if ( have_posts() ) : ?>
-
- <?php newtheme_content_nav( 'nav-above' ); ?>
-
- <?php /* Start the Loop */ ?>
- <?php while ( have_posts() ) : the_post(); ?>
-
- <?php get_template_part( 'content', get_post_format() ); ?>
-
- <?php endwhile; ?>
-
- <?php newtheme_content_nav( 'nav-below' ); ?>
-
- <?php else : ?>
-
- <article id="post-0" class="post no-results not-found">
- <header class="entry-header">
- <h1 class="entry-title"><?php _e( 'Nothing Found', 'newtheme' ); ?></h1>
- </header><!-- .entry-header -->
-
- <div class="entry-content">
- <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'newtheme' ); ?></p>
- </div><!-- .entry-content -->
- </article><!-- #post-0 -->
-
- <?php endif; ?>
-
- </div><!-- #content -->
- </div><!-- #primary -->
-
- <?php get_sidebar(); ?>
Lo primero que hacemos es crear dos capas con id primary y content, ambas contendrán el contenido que se muestre en la página.
Seguidamente tenemos un condicional que comprueba si hay posts para mostrar en la página.
Si es que sí hay posts, WordPress procesará las cinco siguientes líneas de código y dentro de estas nuestro bucle o The Loop.
Antes y después del bucle se hace una llamada a la función newtheme_content_nav(), este es un hook para crear el paginador de post en el caso de que haya más que las que pueden entrar en una página. Esta función la crearemos más adelante en el archivo functions.php.
El bucle while se ejecutará mientras have_posts() sea true, y los datos del post se obtienen de the_post(), que serán procesados en la plantilla correspondiente utilizando get_template_part( ‘content’, get_post_format() ). Esta función (get_template_part()) llama a la plantilla content para procesarla y generar el código html correspondiente.
Si no hay posts entonces se muestra un mensaje al usuario indicando esto mismo.
Cerramos las etiquetas div. Por último nos encontramos con la función get_sidebar(), que nos generará la barra lateral con los widgets de nuestro blog. De hecho ya vimos esta función en la plantilla del pie (footer.php) en ella nos encontramos con la función get_sidebar( ‘footer’ ). La razón de que una función tenga argumento y otra no, radica en la plantilla a usar. En el caso del sidebar del pie, se utilizará sidebar-footer.php y para el sidebar del index.php usaremos la genérica: sidebar.php.
Si ejecutásemos ahora la página principal de nuestro WordPress no veríamos contenido, la razón es que aun no hemos creado la plantilla que muestra el contenido, así que vamos a ello.
CONTENT.PHP
Este archivo es el encargado de mostrar el contenido de los posts y maquetarlo en html. Para ello vamos a crear el archivo content.php y añadir las siguientes líneas de código:
- <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
- <header class="entry-header">
- <?php if ( is_sticky() ) : ?>
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Featured', 'newtheme' ); ?></h3>
- </hgroup>
- <?php else : ?>
- <h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
- <?php endif; ?>
-
- <?php if ( 'post' == get_post_type() ) : ?>
- <div class="entry-meta">
- <?php newtheme_posted_on(); ?>
- </div><!-- .entry-meta -->
- <?php endif; ?>
-
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Reply', 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
- </header><!-- .entry-header -->
-
- <?php if ( is_search() ) : // Only display Excerpts for Search ?>
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- </div><!-- .entry-summary -->
- <?php else : ?>
- <div class="entry-content">
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
- <?php endif; ?>
-
- <footer class="entry-meta">
- <?php $show_sep = false; ?>
- <?php if ( 'post' == get_post_type() ) : // Hide category and tag text for pages on Search ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $categories_list = get_the_category_list( __( ', ', 'newtheme' ) );
- if ( $categories_list ):
- ?>
- <span class="cat-links">
- <?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-cat-links', $categories_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if categories ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $tags_list = get_the_tag_list( '', __( ', ', 'newtheme' ) );
- if ( $tags_list ):
- if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="tag-links">
- <?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if $tags_list ?>
- <?php endif; // End if 'post' == get_post_type() ?>
-
- <?php if ( comments_open() ) : ?>
- <?php if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'nwtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; // End if comments_open() ?>
-
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
- </article><!-- #post-<?php the_ID(); ?> -->
Sí, es mucho código pero como siempre os lo explicaré casi línea por línea.
En primer lugar tenemos las etiquetas article y header del post:
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header class="entry-header">
Aquí vemos dos funciones de WordPress, la primera the_ID() sirve para devolver el id del post, el segundo genera las clases de estilos para el post.
Ha continuación tenemos el siguiente bloque condicional dentro de la etiqueta header:
- <?php if ( is_sticky() ) : ?>
- <hgroup>
- <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
- <h3 class="entry-format"><?php _e( 'Featured', 'newtheme' ); ?></h3>
- </hgroup>
- <?php else : ?>
- <h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'newtheme' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
- <?php endif; ?>
-
- <?php if ( 'post' == get_post_type() ) : ?>
- <div class="entry-meta">
- <?php newtheme_posted_on(); ?>
- </div><!-- .entry-meta -->
- <?php endif; ?>
-
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Reply', 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
Como puedes ver el condicional comprueba la función is_sticky(). Esta función comprueba si el post ha sido seleccionado para que se mantenga fijo en la página principal o como destacado. Como verás, si el post está fijo en la página principal se mostrará el título de la entrada y un texto (Featured o Destacado) que indica el estado de este.
En el caso que no sea un post destacado se genera el título por defecto. Para generar la url se utiliza la función the_permalink() que genera la url absoluta del post. Además se añade al atributo title del link el título del post.
- <?php if ( 'post' == get_post_type() ) : ?>
- <div class="entry-meta">
- <?php newtheme_posted_on(); ?>
- </div><!-- .entry-meta -->
- <?php endif; ?>
Este código genera el html correspondiente para las etiquetas meta de la página/post: fecha/hora, autor, descripción, etc.
- <?php if ( comments_open() && ! post_password_required() ) : ?>
- <div class="comments-link">
- <?php comments_popup_link( '<span class="leave-reply">' . __( 'Reply', 'newtheme' ) . '</span>', _x( '1', 'comments number', 'newtheme' ), _x( '%', 'comments number', 'newtheme' ) ); ?>
- </div>
- <?php endif; ?>
Aquí se comprueba si el post permite comentarios y no es requerida una contraseña. Dentro del condicional se crea el link que mostrará los comentarios, además el texto del vínculo será el número de comentarios que tiene el post. Esto crearía un número al lado del título del post, normalmente con un fondo con una burbuja de diálogo.
- <?php if ( is_search() ) : // Only display Excerpts for Search ?>
- <div class="entry-summary">
- <?php the_excerpt(); ?>
- </div><!-- .entry-summary -->
- <?php else : ?>
- <div class="entry-content">
- <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'newtheme' ) ); ?>
- <?php wp_link_pages( https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'newtheme' ) . '</span>', 'after' => '</div>' ) ); ?>
- </div><!-- .entry-content -->
- <?php endif; ?>
Se comprueba si lo que se está mostrando es una búsqueda, si es así se carga parte del cuerpo del post pero añadiendo al final del texto […].
Si no se está mostrando una búsqueda se carga el contenido con la función the_content(), que en el caso que el post contenga un separador del tipo «read more… » se mostrará un texto que lo indique. Por último se muestran una serie de links para poder ir directamente a las diferentes páginas del post.
- <footer class="entry-meta">
- <?php $show_sep = false; ?>
- <?php if ( 'post' == get_post_type() ) : // Hide category and tag text for pages on Search ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $categories_list = get_the_category_list( __( ', ', 'newtheme' ) );
- if ( $categories_list ):
- ?>
- <span class="cat-links">
- <?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-cat-links', $categories_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if categories ?>
- <?php
- /* translators: used between list items, there is a space after the comma */
- $tags_list = get_the_tag_list( '', __( ', ', 'newtheme' ) );
- if ( $tags_list ):
- if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="tag-links">
- <?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'newtheme' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list );
- $show_sep = true; ?>
- </span>
- <?php endif; // End if $tags_list ?>
- <?php endif; // End if 'post' == get_post_type() ?>
-
- <?php if ( comments_open() ) : ?>
- <?php if ( $show_sep ) : ?>
- <span class="sep"> | </span>
- <?php endif; // End if $show_sep ?>
- <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'newtheme' ) . '</span>', __( '<b>1</b> Reply', 'nwtheme' ), __( '<b>%</b> Replies', 'newtheme' ) ); ?></span>
- <?php endif; // End if comments_open() ?>
-
- <?php edit_post_link( __( 'Edit', 'newtheme' ), '<span class="edit-link">', '</span>' ); ?>
- </footer><!-- #entry-meta -->
Llegamos al pie del post donde se comprobará primero que lo que se muestra es un post y no una búsqueda, en el caso de ser esto afirmativo se cargan las categorías a la que pertenezca el post y se genera su código html correspondiente.
Después se carga el listado de tags o etiquetas y se genera el código html para mostrarlas.
A continuación mostramos de nuevo el número de comentarios del post.
Por último mostramos el link de editar post, siempre y cuando el usuario tenga permiso para ello.
Ocultar el bloque de contenido principal (main content block) de la página principal en Drupal
0Primero debes crear un nuevo tipo de contenido, yo lo he llamado ‘home’, además en la descripción he indicado que no se genere ningún contenido de ese tipo.
Segundo, en la configuración del bloque del contenido principal nos vamos al apartado de ‘Tipos de contenido’ y seleccionamos ‘home’ para que muestre solo ese tipo de contenido.
En el bloque node que está dentro del core de Drupal abrimos el archivo node.module y vamos a la linea 2557 o al método node_page_default(), nos aparecerá este código:
- <?php
-
- drupal_set_title(t('Welcome to @site-name', https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/('@site-name' => variable_get('site_name', 'Drupal'))), PASS_THROUGH);
- $default_message = '<p>' . t('No front page content has been created yet.') . '</p>';
-
- if (_node_add_access()) {
- $default_links[] = l(t('Add new content'), 'node/add');
- }
-
- $default_message .= theme('item_list', https://www.interadictos.es/mujeres-solteras-de-mendoza-buscan-pareja/('items' => $default_links));
- }
-
- '#markup' => $default_message,
- '#prefix' => '<div id="first-time">',
- '#suffix' => '</div>',
- );
Bien, coméntalo y añade justo debajo:
- <?php
- drupal_set_title('');
- '#markup' => '',
- '#prefix' => '',
- '#suffix' => '',
- );
El bloque de contenido principal ya no aparecerá en la página principal, aunque esto no es perfecto, lo sé… pero funciona xD.