Last modified on 2 July 2012, at 12:53

PHP Programming/html output

There are a few different way you can display html using php. Generally, you will use the echo command to output something. This will be seen by a web browser, and then it will format it.

<?php get_header(); ?>

                       <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
                           <?php if ( !empty( $post->post_parent ) ) : ?>
                           

<a href="<?php echo get_permalink( $post->post_parent ); ?>" title="<?php esc_attr( printf( __( 'Return to %s', 'appthemes' ), get_the_title( $post->post_parent ) ) ); ?>" rel="gallery"><?php printf( '' . __( '← Return to %s', 'appthemes' ) . '', get_the_title( $post->post_parent ) );  ?></a>

                           <?php endif; ?>
                           <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                           

<?php the_title(); ?>

                                   <?php
                                       printf( __( 'By %2$s', 'appthemes' ),
                                           'meta-prep meta-prep-author',
                                           sprintf( '<a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a>',
                                               get_author_posts_url( get_the_author_meta( 'ID' ) ),
                                               sprintf( esc_attr__( 'View all ads by %s', 'appthemes' ), get_the_author() ),
                                               get_the_author()
                                           )
                                       );
                                   ?>
                                   
                                   |
                                   
                                   <?php
                                       printf( __( 'Uploaded %2$s', 'appthemes' ),
                                           'meta-prep meta-prep-entry-date',
                                           sprintf( '',
                                               esc_attr( get_the_time() ),
                                               get_the_date()
                                           )
                                       );
                                       
                                       if ( wp_attachment_is_image() ) {
                                           echo ' | ';
                                           $metadata = wp_get_attachment_metadata();
                                           printf( __( 'Full size is %s pixels', 'appthemes' ),
                                               sprintf( '<a href="%1$s" title="%2$s">%3$s × %4$s</a>',
                                                   wp_get_attachment_url(),
                                                   esc_attr( __( 'Link to full-size image', 'appthemes' ) ),
                                                   $metadata['width'],
                                                   $metadata['height']
                                               )
                                           );
                                       }
                                   ?>
                                   
                                   <?php edit_post_link( __( 'Edit', 'appthemes' ), '| ', '' ); ?>
                                   
                                       <?php if ( wp_attachment_is_image() ) : ?>
                                       
                                           <?php
                                           $attachments = array_values( get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) );
                                           
                                           foreach ( $attachments as $k => $attachment ) {
                                               if ( $attachment->ID == $post->ID )
                                                   break;
                                           }
                                           
                                           $k++;
                                           // If there is more than 1 image attachment in a gallery
                                           if ( count( $attachments ) > 1 ) {
                                               if ( isset( $attachments[ $k ] ) )
                                                   // get the URL of the next image attachment
                                                   $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
                                               else
                                                   // or get the URL of the first image attachment
                                                   $next_attachment_url = get_attachment_link( $attachments[ 0 ]->ID );
                                           } else {
                                               // or, if there's only 1 image attachment, get the URL of the image
                                               $next_attachment_url = wp_get_attachment_url();
                                           }
                                           ?>
                                       

<a href="<?php echo $next_attachment_url; ?>" title="<?php echo esc_attr( get_the_title() ); ?>" rel="attachment"> <?php $attachment_width = apply_filters( 'appthemes_attachment_size', 800 ); $attachment_height = apply_filters( 'appthemes_attachment_height', 800 ); echo wp_get_attachment_image( $post->ID, array( $attachment_width, $attachment_height ) );  ?></a>

                                       <?php else : ?>
                                       
                                           <a href="<?php echo wp_get_attachment_url(); ?>" title="<?php echo esc_attr( get_the_title() ); ?>" rel="attachment"><?php echo basename( get_permalink() ); ?></a>
                                           
                                       <?php endif; ?>
                                       


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


<?php get_footer(); ?>

Breaking PHP for OutputEdit

In addition to using functions such as echo and print, you can also end your script, and anything beyond the end of the script will be output as normal HTML to the browser. You can also restart your script whenever you want after you've closed the PHP tag. Confused? It's actually pretty simple.

Let's say you had a for loop to count up to five and output it.

<?php
 
echo("<ul>");
for($x = 1; $x < 6; $x++)
{
  echo("<li>" . $x . "</li>");
}
echo("</ul>");
 
?>

While I would tend to use templates for larger pages that output a lot, we'll get to that later. Remember how all your PHP scripts start with <?php and end with ?>? Those don't have to be the very start and end of your file. In fact, PHP handles ending and restarting scripting just like if everything between the ?> and <?php tags were inside of an echo statement.

Thus, you could do something like this:

<ul>
 
 <?php
 for($x = 1; $x < 6; $x++)
 {
 ?>
  <li><?php echo $x ?></li>
 <?php
 }
 ?>
 
</ul>

This is actually a very common method of outputting variables in a script, especially if there is a lot of HTML surrounding the variables. As I said before, I personally rarely ever do this, as in my opinion, using echo for smaller scripts keeps your code cleaner (and I would use templates for larger ones). However, we want to cover most of the language here, so this is another method you could use.