Tips & Tricks
Turn your RSS feed into a shortcode
Last week I wrote how to “Use WordPress to print a RSS feed for Eventbrite attendees“. It was pretty popular, but then I found myself in a place that was more annoying. Trying to incorporate that into a blog post or page.
Without having to download a plugin that will allow PHP to be executed inside a post, I would have to create a template file and use that. Which is what I did, and it works just fine. But for some reason I forgot all about shortcodes! With a shortcode, I could generate all the PHP in the functions file and then just call the shortcode when/where I want.
Okay, so lets show the completed PHP code:
function attendee_feed_print_2009() { global $wpdb; include_once( ABSPATH . WPINC . '/rss.php' ); $rss = fetch_rss( 'http://www.eventbrite.com/rss/event_list_attendees/384870157' ); $items = array_slice( $rss->items, 0 ); if ( empty( $items ) ) echo '<ul style="list-style-type: none; list-style-image: none; list-style-position: outside;"><li>No items</li></ul>'; else foreach ( $items as $item ) : ?> <ul style="list-style-type:none; list-style-image:none; list-style-position:outside; margin-bottom: 0px"> <li><!--<strong><?php echo $item[ 'title' ]; //User name ?></strong><br />--> <?php echo $item[ 'content' ][ 'encoded' ]; ?> <hr style="border: 1px solid #ddd; margin-bottom: 8px" /> </li> </ul> <?php endforeach; }
Now, this code has to be changed for it to work as a shortcode. We’ll have to return the function and not print/echo it.
I also wanted to be able to use multiple instances of the code with different feeds. To do so I had to create a argument to extract from the completed short code. I found a demo at: Alex Mansfield’s post.
Remember this:
function attendee_feed_print_2009() { global $wpdb; include_once( ABSPATH . WPINC . '/rss.php' ); $rss = fetch_rss( 'http://www.eventbrite.com/rss/event_list_attendees/384870157' );
We are going to update it to read as follows ( changes in bold ) :
function attendee_feed_print_2009( $rss_nbr ) { global $wpdb; extract( shortcode_atts( array( 'rss' => ''), $rss_nbr ) ); include_once( ABSPATH . WPINC . '/rss.php' ); $rss = fetch_rss( $rss );
And the final code with the fields updated to return the arguments ( put into your functions.php file ( in between <?php
?>
) ) :
function attendee_feed_print_2009( $rss_nbr ) { global $wpdb; extract( shortcode_atts( array( 'rss' => ''), $rss_nbr ) ); include_once( ABSPATH . WPINC . '/rss.php' ); $rss = fetch_rss( $rss ); $items = array_slice( $rss->items, 0 ); $rss_html = '<div id="eventbrite-attendee-list" style="clear:both;">'; if ( empty( $items ) ) $rss_html .= '<ul style="list-style:none;"><li>No attendees, yet.</li></ul>'; else foreach ( $items as $item ) : $rss_html .= '<ul style="background:none; list-style:none; margin:0px">'; $rss_html .= '<li style="background:none; list-style:none;">'; $rss_html .= $item[ 'content' ][ 'encoded' ]; $rss_html .= '<hr style="border: 1px solid #ddd; margin-bottom: 10px" />'; $rss_html .= '</li>'; $rss_html .= '</ul>'; endforeach; $rss_html .= '</div>'; return $rss_html; }
And lets not forget to add the shortcode function!
add_shortcode( 'eventbrite-attendees', 'attendee_feed_print_2009' );
Final outcome with look like this `[eventbrite-attendees rss="http://your-rss-feed.com/"]`
I’ve created this into a plugin!
Download the plugin: http://wordpress.org/extend/plugins/eventbrite-attendees-shortcode/
Tips & Tricks
Echo custom fields in any category
Here is a neat trick. Say you want to show a custom field in you post or in a certain categories post. There is a simple code you need to write in order to accomplish this:
<?php $image = get_post_meta($post->ID, "image", $single = true); ?> <?php if($image != '') : if(in_category(7)) { echo ''; } else { ?> <img src="<?php echo $image ?>" alt="<?php the_title(); ?>" /></a>
In the example above I am calling the variable $image
and telling the server that it equals the value of “image” inside get_post_meta
or “custom field” of the current post.
Then we are asking if that variable $image
doesn’t equal nothing or !=
and if it is in the category id of 7, echo what ever is in the single quotes (which is nothing in this example), otherwise show the <img>
and the value inside “image” which should be the location of the image.
Update: Thanks to Austin from PressedWords for pointing out his trick, from the comment below.
Tips & Tricks
Disable caching of your site or post
I talked about Disabling search engine on search pages in a previous post using the meta tag
. Today lets go over the web bots Cached copy of your site. If you are working on builder your blog, or have a temporary site up, use the following code:
<meta name="robots" content="noarchive">
This will tell any bot to follow your site, index it, but prevents a cached copy of this page from being available in the search results.
Tips & Tricks
Disable search engine on search pages
A good idea when trying to get the most out of your blog is usging the meta tag to tell the web bots to search & index your site. But for good SEO you should apply this code in your header.php
file of your WordPress blog.
<?php if(is_search()) { ?> <meta name="robots" content="noindex, nofollow" /> <?php }?>
This will keep your site from getting a hit from bots over duplicate entries. 🙂
-
Tips & Tricks2 months ago
WordPress Security Hacks
-
Pages5 months ago
Write For Us – Guest Post
-
Showcase5 months ago
StylizedWeb.com
-
News4 months ago
How to: Show/Hide any div box with jQuery in WordPress
-
Tips & Tricks4 months ago
Remove the title attribute using jQuery
-
Plugins4 weeks ago
Top Membership plugins
-
Tips & Tricks1 month ago
How to: show/hide a widget in WordPress with jQuery
-
Guest Post4 weeks ago
The Top 10 Best Free Android Retro Games of all time
Alex Mansfield
August 5, 2009 at 10:47 pm
Nice post. I’m glad you found my shortcode tutorial helpful!
.-= Alex Mansfield´s last blog ..Adding Custom WordPress Shortcodes =-.
Berg
August 10, 2009 at 2:35 am
Hey, thanks for the code.
Austin
August 10, 2009 at 10:50 am
Check out the plugin!! Eventbrite Attendee Shortcode
jon
August 25, 2009 at 10:23 pm
thanks for the code.
Auctions
September 1, 2009 at 10:05 pm
Thanks for this code… I will try this….Great informative article…
Arveno
September 20, 2009 at 8:55 am
Works great. I appreciate!
John Zitto
September 22, 2009 at 12:55 pm
Thanks! This code is useful to me!