Donate to the Palestine's children, safe the people of Gaza.  >>>Donate Link...... Your contribution will help to save the life of Gaza people, who trapped in war conflict & urgently needed food, water, health care and more.

42 Extremely Useful Tricks for the WordPress Functions File

The WordPress functions.php file is like a plugin for your WordPress theme, allowing you to add both simple and complex functionality to your site. Below are 42 extremely useful tricks that you can add to your WordPress functions.php file.

Note: Always backup your website before editing the functions.php file, and consider developing on a staging environment first.

  1. Hide Admin Bar for Non-Admins
    php
    if (!current_user_can('manage_options')) {
    show_admin_bar(false);
    }
  2. Remove WordPress Version
    php
    remove_action('wp_head', 'wp_generator');
  3. Remove RSS Feed Links
    php
    remove_action('wp_head', 'feed_links', 2);
  4. Disable XML-RPC
    php
    add_filter('xmlrpc_enabled', '__return_false');
  5. Disable Self Pingbacks
    php
    function disable_self_ping(&$links) {
    foreach ($links as $l => $link)
    if (0 === strpos($link, get_option('home')))
    unset($links[$l]);
    }
    add_action('pre_ping', 'disable_self_ping');

Performance

  1. Limit Revisions
    php
    define('WP_POST_REVISIONS', 5);
  2. Remove Query Strings
    php
    function remove_query_strings() {
    if (!is_admin()) {
    add_filter('script_loader_src', 'remove_query_strings_split', 15);
    add_filter('style_loader_src', 'remove_query_strings_split', 15);
    }
    }
    function remove_query_strings_split($src){
    $output = preg_split("/(&ver|\?ver)/", $src);
    return $output[0];
    }
    add_action('init', 'remove_query_strings');

Customization

  1. Add Custom Logo Support
    php
    function theme_prefix_setup() {
    add_theme_support('custom-logo');
    }
    add_action('after_setup_theme', 'theme_prefix_setup');
  2. Custom Excerpt Length
    php
    function custom_excerpt_length($length) {
    return 20;
    }
    add_filter('excerpt_length', 'custom_excerpt_length', 999);
  3. Custom Excerpt Suffix
    php
    function custom_excerpt_more($more) {
    return '...';
    }
    add_filter('excerpt_more', 'custom_excerpt_more');
  4. Register New Sidebar
    php
    function custom_sidebar() {
    register_sidebar(array(
    'name' => __('Custom Sidebar'),
    'id' => 'custom-sidebar',
    ));
    }
    add_action('widgets_init', 'custom_sidebar');
  5. Custom Login Logo
    php
    function custom_login_logo() {
    echo '<style type="text/css">h1 a { background-image: url('.get_bloginfo('template_directory').'/images/logo.png) !important; }</style>';
    }
    add_action('login_head', 'custom_login_logo');

SEO and Social

  1. Add Open Graph Meta
    php
    function insert_open_graph_in_head() {
    // Your Open Graph Tags here
    }
    add_action('wp_head', 'insert_open_graph_in_head', 5);
  2. Add Canonical Tags
    php
    function rel_canonical() {
    if (!is_singular()) return;
    global $wp_the_query;
    if ($id = $wp_the_query->get_queried_object_id()) {
    $link = get_permalink($id);
    echo "\n<link rel='canonical' href='$link' />\n";
    }
    }
    add_action('wp_head', 'rel_canonical');
  3. Remove Yoast SEO Comment in Head
    php
    add_filter('wpseo_debug_markers', '__return_false');
  4. Add Twitter Cards
    php
    function add_twitter_cards() {
    // Your Twitter Card data here
    }
    add_action('wp_head', 'add_twitter_cards');

Security

  1. Disable File Editing from Dashboard
    php
    define('DISALLOW_FILE_EDIT', true);
  2. Remove Error Message on Login Page
    php
    function no_wordpress_errors(){
    return 'Something is wrong!';
    }
    add_filter('login_errors', 'no_wordpress_errors');
  3. Restrict Access to WP-Admin
    php
    function restrict_admin_access(){
    if (!current_user_can('manage_options') && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF']) {
    wp_redirect(home_url());
    }
    }
    add_action('admin_init', 'restrict_admin_access', 1);

Advanced Features

  1. Add Custom Post Type
    php
    function create_post_type() {
    register_post_type('my_custom_post',
    array('labels' => array('name' => __('My Custom Post')),
    'public' => true,
    )
    );
    }
    add_action('init', 'create_post_type');
  2. Custom Dashboard Widgets
    php
    function add_custom_dashboard_widgets() {
    wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
    }
    function custom_dashboard_help() {
    echo '<p>Welcome to my custom dashboard widget.</p>';
    }
    add_action('wp_dashboard_setup', 'add_custom_dashboard_widgets');
  3. Register Custom Taxonomy
    php
    function create_custom_taxonomy() {
    $labels = array(
    'name' => _x('Taxonomies', 'taxonomy general name'),
    // Other labels here
    );
    register_taxonomy('taxonomy', array('post'), array(
    'label' => __('Custom Taxonomy'),
    'labels' => $labels,
    // Additional options here
    ));
    }
    add_action('init', 'create_custom_taxonomy', 0);

WooCommerce Customization

  1. Remove WooCommerce Breadcrumbs
    php
    remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0);
  2. Change Add to Cart Text on WooCommerce Button
    php
    add_filter('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');
    function woo_custom_cart_button_text() {
    return __('My Button Text', 'woocommerce');
    }
  3. Hide Out of Stock Items
    php
    add_filter('woocommerce_product_query_meta_query', 'hide_out_of_stock_items');
    function hide_out_of_stock_items($meta_query){
    $meta_query[] = array(
    'key' => '_stock_status',
    'value' => 'outofstock',
    'compare' => '!='
    );
    return $meta_query;
    }

Posts and Pages

  1. Change Read More Link
    php
    function modify_read_more_link() {
    return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
    }
    add_filter('the_content_more_link', 'modify_read_more_link');
  2. Add Featured Image Support
    php
    add_theme_support('post-thumbnails');
  3. Remove Sticky Post Class
    php
    function remove_sticky_class($classes) {
    if(in_array('sticky', $classes)) {
    $classes = array_diff($classes, array('sticky'));
    $classes[] = 'my-sticky';
    }
    return $classes;
    }
    add_filter('post_class','remove_sticky_class');
  4. Redirect To Home After Logout
    php
    function logout_redirect_home(){
    wp_redirect( home_url() );
    exit();
    }
    add_action('wp_logout','logout_redirect_home');

Miscellaneous

  1. Change Admin Footer Text
    php
    function custom_admin_footer_text () {
    echo 'Your custom admin footer text';
    }
    add_filter('admin_footer_text', 'custom_admin_footer_text');
  2. Disable WP Emojis
    php
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
  3. Enable SVG Uploads
    php
    function enable_svg_upload($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
    }
    add_filter('upload_mimes', 'enable_svg_upload');
  4. Disable WordPress Update Notifications for Specific Plugin
    php
    function disable_plugin_updates( $value ) {
    if ( isset($value) && is_object($value) && isset($value->response['plugin-folder/plugin-file.php']) ) {
    unset($value->response['plugin-folder/plugin-file.php']);
    }
    return $value;
    }
    add_filter('site_transient_update_plugins', 'disable_plugin_updates');
  5. Customize the Login Page URL
    php
    function custom_loginlogo_url($url) {
    return get_bloginfo('url');
    }
    add_filter('login_headerurl', 'custom_loginlogo_url');
  6. Add Categories to Attachments
    php
    function add_categories_to_attachments() {
    register_taxonomy_for_object_type( 'category', 'attachment' );
    }
    add_action( 'init' , 'add_categories_to_attachments' );
  7. Add Custom Role
    php
    add_role('custom_role', 'Custom Role', array('read' => true));
  8. Automatically Set the Featured Image
    php
    function autoset_featured_image() {
    global $post;
    if (!has_post_thumbnail($post->ID)) {
    $attached_image = get_children("post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1");
    if ($attached_image) {
    foreach ($attached_image as $attachment_id => $attachment) {
    set_post_thumbnail($post->ID, $attachment_id);
    }
    }
    }
    }
    add_action('the_post', 'autoset_featured_image');
  9. Add Custom Image Sizes
    php
    function my_custom_sizes() {
    add_image_size('my-custom-size', 400, 300, true);
    }
    add_action('after_setup_theme', 'my_custom_sizes');
  10. Move jQuery to the Footer
    php
    function move_jquery_to_footer() {
    if (!is_admin()) {
    wp_deregister_script('jquery');
    wp_register_script('jquery', includes_url('/js/jquery/jquery.js'), false, null, true);
    wp_enqueue_script('jquery');
    }
    }
    add_action('wp_enqueue_scripts', 'move_jquery_to_footer');
  11. Change Howdy Text in Admin Bar
    php
    function replace_howdy($wp_admin_bar) {
    $my_account=$wp_admin_bar->get_node('my-account');
    $newtitle = str_replace('Howdy,', 'Welcome,', $my_account->title);
    $wp_admin_bar->add_node(array(
    'id' => 'my-account',
    'title' => $newtitle,
    ));
    }
    add_filter('admin_bar_menu', 'replace_howdy',25);
  12. Remove Unused Dashboard Widgets
    php
    function remove_dashboard_widgets() {
    global $wp_meta_boxes;
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
    }
    add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
  13. Change Admin Email Without Confirmation
    php
    add_filter( 'admin_email_check_interval', '__return_false' );

To Get Daily Health Newsletter

We don’t spam! Read our privacy policy for more info.

Download Mobile Apps
Follow us on Social Media
© 2012 - 2025; All rights reserved by authors. Powered by Mediarx International LTD, a subsidiary company of Rx Foundation.
RxHarun
Logo