how can I add a “read more” tag directly in the template?

The code would probably be something like this: echo ‘<a href=”‘ . get_permalink() . “#more-{$post->ID}\” class=\”more-link\”>”.__( ‘Read more &gt;’, ‘your-theme’ ). ‘</a>’; Check out the source on how WordPress does it: http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/post-template.php#L219 This has to be inside the loop to work and the $post global has to be visible in the current scope.

convert more tag to shortcode

Try adding this to your plugin file (or functions.php). You’ll use [my_more] as the shortcode for this example. function wpse50449_more_func( $atts ){ return “\n<!– more –>\n”; } add_shortcode( ‘my_more’, ‘wpse50449_more_func’ );

Enclosing Shortcode is acting like self-closing

Remove the space after the shortcode name. add_shortcode( ‘bio_image ‘, ‘bio_image_func’ ); becomes add_shortcode( ‘bio_image’, ‘bio_image_func’ ); I think WordPress is looking for a closing tag for bio_image[space], which doesn’t exist.

If else with shortcodes

This is rather a simple PHP question and almost off topic. You can simplify your code drastically: $metas = array ( ‘twitch’, ‘own3d’, ‘livestream’, ‘ustream’, ‘justin’ ); foreach ( $metas as $meta ) { $value = get_post_meta( $post->ID, $meta, TRUE ); if ( $value ) { echo do_shortcode(“[livestream type=”$meta” channel=”$value”]”); break; } } This will … Read more

Shortcode Strategy

Either way you’re going to need to store the data you retrieve from an external database, in your WordPress database, if you don’t want to continually run the same query on your external database each time the page is accessed. You can either store the data in your WordPress database using Custom Fields (post meta) … Read more

How to build dynamic pages?

Using WP’s templates you can create a page with static content already in it, and just grab the dynamic parts using WP_Query class. <h1>Static Header</h1> <div id=”dynamic_content1″> <?php $recentPosts = new WP_Query(); $recentPosts->query(‘showposts=3’); while ($recentPosts->have_posts()) : $recentPosts->the_post(); the_content(); // Put Loop Stuff Here endwhile; ?> </div> <div id=”other_dynamic_content”> <?php $anotherQuery = new WP_Query(); $anotherQuery->query(‘someotherquery=1’); while … Read more