More and more clients are using WordPress as their CMS. As a designer or developer, you should really get into WordPress coding. To get started, you can read my WordPress theme guide and hacks. Now, I would like to recommend a resourceful WordPress site to you called WpRecipes. This post contains over 20 recipes that I hand picked from WpRecipes. If you have any good WordPress code or hacks that you want to share, feel free to send them over and I will post it.
先粘过来,研究明白再翻译一下,哈!
Display Tags In A Dropdown Menu
In your theme folder, paste the following code to the functions.php file. If you don’t have a functions.php file, create one.
<?php function dropdown_tag_cloud( $args = \'\' ) { $defaults = array( \'smallest\' => 8, \'largest\' => 22, \'unit\' => \'pt\', \'number\' => 45, \'format\' => \'flat\', \'orderby\' => \'name\', \'order\' => \'ASC\', \'exclude\' => \'\', \'include\' => \'\' ); $args = wp_parse_args( $args, $defaults ); $tags = get_tags( array_merge($args, array(\'orderby\' => \'count\', \'order\' => \'DESC\')) ); // Always query top tags if ( empty($tags) ) return; $return = dropdown_generate_tag_cloud( $tags, $args ); // Here\'s where those top tags get sorted according to $args if ( is_wp_error( $return ) ) return false; else echo apply_filters( \'dropdown_tag_cloud\', $return, $args ); } function dropdown_generate_tag_cloud( $tags, $args = \'\' ) { global $wp_rewrite; $defaults = array( \'smallest\' => 8, \'largest\' => 22, \'unit\' => \'pt\', \'number\' => 45, \'format\' => \'flat\', \'orderby\' => \'name\', \'order\' => \'ASC\' ); $args = wp_parse_args( $args, $defaults ); extract($args); if ( !$tags ) return; $counts = $tag_links = array(); foreach ( (array) $tags as $tag ) { $counts[$tag->name] = $tag->count; $tag_links[$tag->name] = get_tag_link( $tag->term_id ); if ( is_wp_error( $tag_links[$tag->name] ) ) return $tag_links[$tag->name]; $tag_ids[$tag->name] = $tag->term_id; } $min_count = min($counts); $spread = max($counts) - $min_count; if ( $spread <= 0 ) $spread = 1; $font_spread = $largest - $smallest; if ( $font_spread <= 0 ) $font_spread = 1; $font_step = $font_spread / $spread; // SQL cannot save you; this is a second (potentially different) sort on a subset of data. if ( \'name\' == $orderby ) uksort($counts, \'strnatcasecmp\'); else asort($counts); if ( \'DESC\' == $order ) $counts = array_reverse( $counts, true ); $a = array(); $rel = ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) ? \' rel=\"tag\"\' : \'\'; foreach ( $counts as $tag => $count ) { $tag_id = $tag_ids[$tag]; $tag_link = clean_url($tag_links[$tag]); $tag = str_replace(\' \', \' \', wp_specialchars( $tag )); $a[] = \"t<option value=\'$tag_link\'>$tag ($count)</option>\"; } switch ( $format ) : case \'array\' : $return =& $a; break; case \'list\' : $return = \"<ul class=\'wp-tag-cloud\'>nt<li>\"; $return .= join(\"</li>nt<li>\", $a); $return .= \"</li>n</ul>n\"; break; default : $return = join(\"n\", $a); break; endswitch; return apply_filters( \'dropdown_generate_tag_cloud\', $return, $tags, $args ); } ?>
Now open the file where you want the list to be displayed and paste the following code:
<select name=\"tag-dropdown\" onchange=\"document.location.href=this.options[this.selectedIndex].value;\"> <option value=\"#\">Tags</option> <?php dropdown_tag_cloud(\'number=0&order=asc\'); ?> </select>
Via: WpRecipes Credits: WpHacks
Get Posts Published Between Two Particular Dates
Just before the loop starts, paste the following code. Change the dates on line 3 according to your needs.
<?php function filter_where($where = \'\') { $where .= \" AND post_date >= \'2009-05-01\' AND post_date <= \'2009-05-15\'\"; return $where; } add_filter(\'posts_where\', \'filter_where\'); query_posts($query_string); ?>
Via: WpRecipes Credits: Codex
Get Posts With A Specific Custom Field & Value
Add the query_posts() function just before the Loop. Change the meta_key
and meta_value
accordingly. The example shown below will get posts with custom field “review_type” with value “movie”.
<?php query_posts(\'meta_key=review_type&meta_value=movie\'); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> ... ...
Via: WpRecipes Credits: John Kolbert
Get Latest Sticky Posts
Paste the following code before the loop. This code will retrieve the 5 most recent sticky posts. To change the number of retrieved posts, just change the 5 by the desired value on line 4.
<?php $sticky = get_option(\'sticky_posts\'); rsort( $sticky ); $sticky = array_slice( $sticky, 0, 5); query_posts( array( \'post__in\' => $sticky, \'caller_get_posts\' => 1 ) ); ?>
Via: WpRecipes Credits: Justin Tadlock
Automatically Insert Content In Your Feeds
In your theme folder, functions.php file, paste the following code. This code will automatically insert the content after each post in your RSS feeds. Hence you can use this code to insert ads or promotional text.
function insertFootNote($content) { if(!is_feed() && !is_home()) { $content.= \"<h4>Enjoyed this article?</h4>\"; $content.= \"<p>Subscribe to our <a href=\'#\'>RSS feed</a></p>\"; } return $content; } add_filter (\'the_content\', \'insertFootNote\');
Via: WpRecipes Credits: Cédric Bousmane
Display The Most Commented Posts
Just paste the following code in your template file where you want to display the most commented posts (eg. sidebar.php). To change the number of displayed posts, simply change the 5 on line 3.
<h2>Popular Posts</h2> <ul> <?php $result = $wpdb->get_results(\"SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5\"); foreach ($result as $post) { setup_postdata($post); $postid = $post->ID; $title = $post->post_title; $commentcount = $post->comment_count; if ($commentcount != 0) { ?> <li><a href=\"<?php echo get_permalink($postid); ?>\" title=\"<?php echo $title ?>\"> <?php echo $title ?></a> {<?php echo $commentcount ?>}</li> <?php } } ?> </ul>
Via: WpRecipes Credits: ProBlogDesign
Display Most Commented Posts In 2008
<h2>Most commented posts from 2008</h2> <ul> <?php $result = $wpdb->get_results(\"SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN \'2008-01-01\' AND \'2008-12-31\' ORDER BY comment_count DESC LIMIT 0 , 10\"); foreach ($result as $topten) { $postid = $topten->ID; $title = $topten->post_title; $commentcount = $topten->comment_count; if ($commentcount != 0) { ?> <li><a href=\"<?php echo get_permalink($postid); ?>\"><?php echo $title ?></a></li> <?php } } ?> </ul>
Via: WpRecipes
Display Related Posts Based On Post Tags
This code will display related posts based on the current post tag(s). It must be pasted within the loop.
<?php //for use in the loop, list 5 post titles related to first tag on current post $tags = wp_get_post_tags($post->ID); if ($tags) { echo \'Related Posts\'; $first_tag = $tags[0]->term_id; $args=array( \'tag__in\' => array($first_tag), \'post__not_in\' => array($post->ID), \'showposts\'=>5, \'caller_get_posts\'=>1 ); $my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <p><a href=\"<?php the_permalink() ?>\" rel=\"bookmark\" title=\"Permanent Link to <?php the_title_attribute(); ?>\"><?php the_title(); ?></a></p> <?php endwhile; } } ?>
Via: WpRecipes Credits: MichaelH
Display The Number Of Search Results
Open search.php, copy and paste the following code.
<h2 class=\"pagetitle\">Search Results for <?php /* Search Count */ $allsearch = &new WP_Query(\"s=$s&showposts=-1\"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(\'\'); _e(\'<span class=\"search-terms\">\'); echo $key; _e(\'</span>\'); _e(\' — \'); echo $count . \' \'; _e(\'articles\'); wp_reset_query(); ?></h2>
Via: WpRecipes Credits: ProBlogDesign
Display The Comment Page Number In The <Title> Tag
Open the header.php file. Paste the following code in between the <title>
tag.
<?php if ( $cpage < 2 ) {} else { echo (\' - comment page \'); echo ($cpage);} ?>
Via: WpRecipes Credits: Malcolm Coles
Display The Future Posts
The following code will display 10 future posts.
<p>Future events</p> <?php query_posts(\'showposts=10&post_status=future\'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <p><?php the_title(); ?> <?php the_time(\'j. F Y\'); ?></p> <?php endwhile; else: ?><p>No future posts.</p><?php endif; ?>
Via: WpRecipes
Randomize Posts Order
To randomize posts order, just add the following code before the Loop.
query_posts(\'orderby=rand\'); //the Loop here...
Via: WpRecipes
Display Word Count Of The Post
Open single.php and paste the following code where you want to display the word count.
<?php function count_words($str){ $words = 0; $str = eregi_replace(\" +\", \" \", $str); $array = explode(\" \", $str); for($i=0;$i < count($array);$i++) { if (eregi(\"[0-9A-Za-zÀ-ÖØ-öø-ÿ]\", $array[$i])) $words++; } return $words; }?> Word count: <?php echo count_words($post->post_content); ?>
Via: WpRecipes
Fetch RSS Feeds
To display RSS feeds, you can use the WordPress built-in RSS parser. To do so, include the rss.php file, and then use its wp_rss()
function.
<?php include_once(ABSPATH.WPINC.\'/rss.php\'); wp_rss(\'http://feeds2.feedburner.com/WebDesignerWall\', 5); ?>
Via: WpRecipes
Highlight Searched Text In Search Results
Open search.php file and find the the_title()
function. Replace it with the following:
echo $title;
Now, just before the modified line, add this code:
<?php $title = get_the_title(); $keys= explode(\" \",$s); $title = preg_replace(\'/(\'.implode(\'|\', $keys) .\')/iu\', \'<strong class=\"search-excerpt\"></strong>\', $title); ?>
Then open the style.css file. Add the following line to it:
strong.search-excerpt { background: yellow; }
Via: WpRecipes Credits: Joost de Valk
Display A Greeting Message On A Specific Date (PHP)
The following code will dispaly a greeting message only on Christmas day.
<?php if ((date(\'m\') == 12) && (date(\'d\') == 25)) { ?> <h2>Merry Christmas!</h2> <?php } ?>
Via: WpRecipes
Automatically Create A TinyURL For Each Post
Open the functions.php file and paste the following code:
function getTinyUrl($url) { $tinyurl = file_get_contents(\"http://tinyurl.com/api-create.php?url=\".$url); return $tinyurl; }
In the single.php file, paste the following within the loop where you want to display the TinyURL:
<?php $turl = getTinyUrl(get_permalink($post->ID)); echo \'Tiny Url for this post: <a href=\"\'.$turl.\'\">\'.$turl.\'</a>\' ?>
Via: WpRecipes
Exclude Categories From Search
Open the search.php file in your theme folder, paste the following code before the Loop. The code will exclude categories with ID 1, 2, 3 in the search results.
<?php if( is_search() ) : $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; query_posts(\"s=$s&paged=$paged&cat=-1,-2,-3\"); endif; ?> //the Loop here...
Via: WpRecipes
Exclude Categories From RSS
Open the functions.php file from your theme. If your theme doesn’t have a functions.php file, create one. Paste the following code in it:
<?php function myFilter($query) { if ($query->is_feed) { $query->set(\'cat\',\'-5\'); //Don\'t forget to change the category ID =^o^= } return $query; } add_filter(\'pre_get_posts\',\'myFilter\'); ?>
Via: WpRecipes Credits: Scott Jangro
Using Shortcodes
Open the functions.php file, paste the following code.
<?php function wprecipes() { return \'Have you checked out WpRecipes today?\'; } add_shortcode(\'wpr\', \'wprecipes\'); ?>
You’re now able to use the wpr shortcode. To do so, paste the following line of code on the editor (in HTML mode) while writing a post:
[wpr]
This short code will output the “Have you checked out WpRecipes today?” message.
Via: WpRecipes Source: Codex
Display The Number Of Your Twitter Followers
Paste the code anywhere you want to display the Twitter follower count. Replace “YourUserID” with your Twitter account in last line.
<?php function string_getInsertedString($long_string,$short_string,$is_html=false){ if($short_string>=strlen($long_string))return false; $insertion_length=strlen($long_string)-strlen($short_string); for($i=0;$i<strlen($short_string);++$i){ if($long_string[$i]!=$short_string[$i])break; } $inserted_string=substr($long_string,$i,$insertion_length); if($is_html && $inserted_string[$insertion_length-1]==\'<\'){ $inserted_string=\'<\'.substr($inserted_string,0,$insertion_length-1); } return $inserted_string; } function DOMElement_getOuterHTML($document,$element){ $html=$document->saveHTML(); $element->parentNode->removeChild($element); $html2=$document->saveHTML(); return string_getInsertedString($html,$html2,true); } function getFollowers($username){ $x = file_get_contents(\"http://twitter.com/\".$username); $doc = new DomDocument; @$doc->loadHTML($x); $ele = $doc->getElementById(\'follower_count\'); $innerHTML=preg_replace(\'/^<[^>]*>(.*)<[^>]*>$/\',\"\\1\",DOMElement_getOuterHTML($doc,$ele)); return $innerHTML; } ?> <?php echo getFollowers(\"YourUserID\").\" followers\"; ?>
Via: WpRecipes
Display FeedBurner Subscriber Count In Text
<?php $fburl=\"https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=feed-id\"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $fburl); $stored = curl_exec($ch); curl_close($ch); $grid = new SimpleXMLElement($stored); $rsscount = $grid->feed->entry[\'circulation\']; echo $rsscount; ?>
Via: WpRecipes
Display The Latest Twitter Entry
Just paste this code in the template file (eg. sidebar.php) where you want to display the latest tweet.
<?php // Your twitter username. $username = \"TwitterUsername\"; $prefix = \"<h2>My last Tweet</h2>\"; $suffix = \"\"; $feed = \"http://search.twitter.com/search.atom?q=from:\" . $username . \"&rpp=1\"; function parse_feed($feed) { $stepOne = explode(\"<content type=\"html\">\", $feed); $stepTwo = explode(\"</content>\", $stepOne[1]); $tweet = $stepTwo[0]; $tweet = str_replace(\"<\", \"<\", $tweet); $tweet = str_replace(\">\", \">\", $tweet); return $tweet; } $twitterFeed = file_get_contents($feed); echo stripslashes($prefix) . parse_feed($twitterFeed) . stripslashes($suffix); ?>
Via: WpRecipes Credits: Ryan Barr
Social Buttons
Facebook Share Button
<a href=\"http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title(); ?>\">Share on Facebook</a>
Digg it
<a href=\"http://www.digg.com/submit?phase=2&url=<?php the_permalink();?>\">Digg It</a>
Stumble upon it
<a href=\"http://www.stumbleupon.com/submit?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>\">Stumble upon it</a>
Add to delicious
<a href=\"http://delicious.com/post?url=<?php the_permalink();?>&title=<?php the_title();?>\">Add to delicious</a>
Share on technorati
<a href=\"http://technorati.com/faves?sub=addfavbtn&add=<?php the_permalink();?>\">Share on technorati</a>
Tweet this
<a href=\"http://twitter.com/home?status=Currently reading <?php the_permalink(); ?>\">Tweet this</a>
1. 资源都是经过站长或作者收集测试修改后发布分享。如若转载请在文内以超链形式注明狐狸库文章出处,谢谢合作!
2. 本站除原创内容,其余所有内容均收集自互联网,仅限用于学习和研究目的,本站不对其内容的合法性承担任何责任。如有版权内容,请通知我们或作者删除,其版权均归原作者所有,本站虽力求保存原有版权信息,但因众多资源经多次转载,已无法确定其真实来源,或已将原有信息丢失,所以敬请原作者谅解!
3. 本站用户所发布的一切资源内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责,若您对本站所载资源作品版权归属存有异议,请留言附说明联系邮箱,我们将在第一时间予以处理 ,同时向您表示歉意!为尊重作者版权,请购买原版作品,支持您喜欢的作者,谢谢!
4. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客如有发现请立即向站长举报;本站资源文件大多存储在云盘,如发现链接或图片失效,请联系作者或站长及时更新。
请登录后查看评论内容