Los code snippets son piezas reutilizables de código (HTML, CSS, JavaScript, etc) que se pueden insertar en una aplicación web con sólo un par de pulsaciones de teclas o hotkeys, lo cual facilita y agiliza el desarrollo de nuestra aplicación.
Hay veces en que queremos hacer algo que vimos en otras webs o blogs, o darle alguna funcionalidad extra al nuestro, es allí que podemos valernos de estos snippets o fragmentos de código re-utilizables.
Hasta podemos combinar el uso de estos para lograr una nueva funcionalidad para nuestro wordpress.
1. Increase the excerpt field height
add_action('admin_head', 'excerpt_textarea_height'); function excerpt_textarea_height() { echo' <style type="text/css"> #excerpt{ height:500px; } </style> '; }
2. Dynamically create and attach sidebars to pages/posts
$dynamic_widget_areas = array( /* rename or create new dynamic sidebars */ "Sidebar 01", "Sidebar 02", "Sidebar 03", "Sidebar 04", "Sidebar 05", "Sidebar 06", "Sidebar 07", "Search Template", ); if ( function_exists('register_sidebar') ) { foreach ($dynamic_widget_areas as $widget_area_name) { register_sidebar(array( 'name'=> $widget_area_name, 'before_widget' => '<div id="%1$s" class="widget %2$s left half">', 'after_widget' => '</div>', 'before_title' => '<h3 class="widgettitle">', 'after_title' => '</h3>', )); } } add_action("admin_init", "sidebar_init"); add_action('save_post', 'save_sidebar_link'); function sidebar_init(){ add_meta_box("sidebar_meta", "Sidebar Selection", "sidebar_link", "page", "side", "default"); } function sidebar_link(){ global $post, $dynamic_widget_areas; $custom = get_post_custom($post->ID); $link = $custom["_sidebar"][0]; ?> <div class="link_header"> <? echo '<select name="link" class="sidebar-selection">'; echo '<option>Select Sidebar</option>'; echo '<option>-----------------------</option>'; foreach ( $dynamic_widget_areas as $list ){ if($link == $list){ echo '<option value="'.$list.'" selected="true">'.$list.'</option>'; }else{ echo '<option value="'.$list.'">'.$list.'</option>'; } } echo '</select><br />'; ?> </div> <p>Select sidebar to use on this page.</p> <?php } function save_sidebar_link(){ global $post; if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {return $post->ID;} update_post_meta($post->ID, "_sidebar", $_POST["link"]); } add_action('admin_head', 'sidebar_css'); function sidebar_css() { echo' <style type="text/css"> .sidebar-selection{width:100%;} </style> '; }
3. Remove the screen options tab with screen_options hook
function remove_screen_options(){ return false; } add_filter('screen_options_show_screen', 'remove_screen_options');
4. Display related posts by posts current author
function get_related_author_posts() { global $authordata, $post; $authors_posts = get_posts( array( 'author' => $authordata->ID, 'post__not_in' => array( $post->ID ), 'posts_per_page' => 5 ) ); $output = '<ul>'; foreach ( $authors_posts as $authors_post ) { $output .= '<li><a target="_blank" rel="nofollow" href="' . get_permalink( $authors_post->ID ) . '">' . apply_filters( 'the_title', $authors_post->post_title, $authors_post->ID ) . '</a></li>'; } $output .= '</ul>'; return $output; }
5. Automatically add the Google +1 button
add_filter('the_content', 'google_plusone'); function google_plusone($content) { $content = $content.'<div class="plusone"> <g:plusone size="tall"target="_blank" rel="nofollow" href="'.get_permalink().'"></g:plusone></div>'; return $content; } add_action ('wp_enqueue_scripts','google_plusone_script'); function google_plusone_script() { wp_enqueue_script('google-plusone', 'https://apis.google.com/js/plusone.js', array(), null); }
6. Adjust settings on theme activation
add_action( 'after_setup_theme', 'the_theme_setup' ); function the_theme_setup() { // First we check to see if our default theme settings have been applied. $the_theme_status = get_option( 'theme_setup_status' ); // If the theme has not yet been used we want to run our default settings. if ( $the_theme_status !== '1' ) { // Setup Default WordPress settings $core_settings = array( 'avatar_default' => 'mystery', // Comment Avatars should be using mystery by default 'avatar_rating' => 'G', // Avatar rating 'comment_max_links' => 0, // We do not allow links from comments 'comments_per_page' => 20 // Default to 20 comments per page ); foreach ( $core_settings as $k => $v ) { update_option( $k, $v ); } // Delete dummy post, page and comment. wp_delete_post( 1, true ); wp_delete_post( 2, true ); wp_delete_comment( 1 ); update_option( 'theme_setup_status', '1' ); $msg = ' <div class="error"> <p>The ' . get_option( 'current_theme' ) . 'theme has changed your WordPress default <a target="_blank" rel="nofollow" href="' . admin_url() . 'options-general.php" title="See Settings">settings</a> and deleted default posts & comments.</p> </div>'; add_action( 'admin_notices', $c = create_function( '', 'echo "' . addcslashes( $msg, '"' ) . '";' ) ); } elseif ( $the_theme_status === '1' and isset( $_GET['activated'] ) ) { $msg = ' <div class="updated"> <p>The ' . get_option( 'current_theme' ) . ' theme was successfully re-activated.</p> </div>'; add_action( 'admin_notices', $c = create_function( '', 'echo "' . addcslashes( $msg, '"' ) . '";' ) ); } }
7. Count total number of images in media library
function img_count(){ $query_img_args = array( 'post_type' => 'attachment', 'post_mime_type' =>array( 'jpg|jpeg|jpe' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', ), 'post_status' => 'inherit', 'posts_per_page' => -1, ); $query_img = new WP_Query( $query_img_args ); echo $query_img->post_count; }
8. Display top 8 authors in wp_nav_menu using wp_list_authors
function wps_nav_authors($items, $args){ if( $args->theme_location == 'header-navigation' ) return $items . '<li><a target="_blank" rel="nofollow" href="#">Authors</a><ul class="sub-menu"><li>' . wp_list_authors('show_fullname=1&optioncount=0&orderby=post_count&order=DESC&number=8&echo=0') . '</li></ul></li>'; } add_filter('wp_nav_menu_items','wps_nav_authors', 10, 2);
9. Get feedburner count using get_transient and wp_remote_get
function feed_subscribers(){ $feed_url = 'http://feeds.feedburner.com/yourname'; $count = get_transient('feed_count'); if ($count != false) return $count; $count = 0; $data = wp_remote_get('http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri='.$feed_url.''); if (is_wp_error($data)) { return 'error'; }else{ $body = wp_remote_retrieve_body($data); $xml = new SimpleXMLElement($body); $status = $xml->attributes(); if ($status == 'ok') { $count = $xml->feed->entry->attributes()->circulation; } else { $count = 300; // fallback number } } set_transient('feed_count', $count, 60*60*24); // 24 hour cache echo $count; }
10. Changing the HTML editor font in wp 3.2
add_action( 'admin_head-post.php', 'devpress_fix_html_editor_font' ); add_action( 'admin_head-post-new.php', 'devpress_fix_html_editor_font' ); function devpress_fix_html_editor_font() { ?> <style type="text/css">#editorcontainer #content, #wp_mce_fullscreen { font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif; }</style> <?php } ?>
11. Restrict wp-admin access to subscribers
function restrict_access_admin_panel(){ global $current_user; get_currentuserinfo(); if ($current_user->user_level < 4) { wp_redirect( get_bloginfo('url') ); exit; } } add_action('admin_init', 'restrict_access_admin_panel', 1);
12. Add rel=”lightbox” to all images embedded in a post
add_filter('the_content', 'my_addlightboxrel'); function my_addlightboxrel($content) { global $post; $pattern ="/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i"; $replacement = '<a$1href=$2$3.$4$5 rel="lightbox" title="'.$post->post_title.'"$6>'; $content = preg_replace($pattern, $replacement, $content); return $content; }
13. Change default “Enter title here” text within post title input field
function title_text_input( $title ){ return $title = 'Enter new title'; } add_filter( 'enter_title_here', 'title_text_input' );
14. Redirect commenter to thank you post or page
add_filter('comment_post_redirect', 'redirect_after_comment'); function redirect_after_comment(){ wp_redirect('/thank-you-page/'); exit(); }
15. Create most recent posts dashboard widget
function wps_recent_posts_dw() { ?> <ol> <?php global $post; $args = array( 'numberposts' => 5 ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <li> (<? the_date('Y / n / d'); ?>) <a target="_blank" rel="nofollow" href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; ?> </ol> <?php } function add_wps_recent_posts_dw() { wp_add_dashboard_widget( 'wps_recent_posts_dw', __( 'Recent Posts' ), 'wps_recent_posts_dw' ); } add_action('wp_dashboard_setup', 'add_wps_recent_posts_dw' );
16. Display hidden custom field _values
add_action( 'admin_head', 'showhiddencustomfields' ); function showhiddencustomfields() { echo "<style type='text/css'>#postcustom .hidden { display: table-row; }</style>\n"; }
17. Loading jQuery from the Google CDN with wp_register_script
add_action( 'init', 'jquery_register' ); function jquery_register() { if ( !is_admin() ) { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', ( 'http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js' ), false, null, true ); wp_enqueue_script( 'jquery' ); } }
by
Janeth Kent Date:
22-08-2013
wordpress snippets codigo funciones desarrolladores diseñadores
visitas :
12139