I was able to work this out thanks to the following post How to Add Categories to Pages in WordPress. I needed to modify WP_query to include pages when displaying a list of posts. Below is the solution:
In my template file:
$args = array(
'category' => 25,
'orderby' => 'date',
'order' => 'ASC'
);
$pages = get_posts($args);
foreach ( $pages as $page ) {
setup_postdata($page);
$mykey_values = get_post_custom_values( 'webinar_link', $page->ID );
echo '<div class="media webinar webinar-upcoming">';
echo '<a class="pull-left" href="' . get_page_link($page->ID) . '" title="' . $page->post_title . '">';
if ( has_post_thumbnail( $page->ID ) ) {
$image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $page->ID ), 'optional-size' );
$image = $image_array[0];
}
echo '<img class="media-object responsive-image" src="' . $image . '"></a>';
echo '<div class="media-body extra-bottom-pad">';
echo '<h2><a href="' . get_page_link( $page->ID ) . '">' . $page->post_title . '</a></h2>';
the_content('');
echo '<a class="pull-left vistex-button-sm more-link" href="' . get_page_link($page->ID) . '" title="' . $page->post_title . '">Learn More</a>';
foreach ($mykey_values as $key => $value) {
echo '<p><a class="vistex-button-sm more-link" style="margin-left: 10px;" target="_blank" href="' . $value . '">Register Now</a></p>';
}
echo '</div>';
echo '</div>';
And in my functions file:
/* add categories to pages */
function cats_pages() {
// Add category metabox to page
register_taxonomy_for_object_type('category', 'page');
}
add_action( 'init', 'cats_pages' );
function add_taxonomies_to_pages() {
register_taxonomy_for_object_type( 'post_tag', 'page' );
register_taxonomy_for_object_type( 'category', 'page' );
}
add_action( 'init', 'add_taxonomies_to_pages' );
if (!is_admin() ) {
add_action( 'pre_get_posts', 'category_and_tag_archives' );
}
function category_and_tag_archives( $wp_query ) {
$my_post_array = array('post','page');
if ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) )
$wp_query->set( 'post_type', $my_post_array );
if ( $wp_query->get( 'tag' ) )
$wp_query->set( 'post_type', $my_post_array );
This did add every single page in my site to the blog so you need to then select the categories that you want to list.
In my index.php file:
<?php $query = new WP_Query('cat=-7,-19,17,18,9,15,16,1'); ?>