Tất cả các theme WordPress đều đi kèm với một file function.php “Rất Mạnh Mẽ”

Nó giống như plugin, và cho phép bạn thực hiện rất nhiều đều hay ho trên WordPress.

Trong bài viết này tôi sẽ giải thích qua cho bạn File Function là gì?

Và các thủ thuật rất hay với file function.php này.

thủ thuật file functions trong WordPress

File Function trong WordPress là gì?

File function hay thường được gọi là file functions.php là một file có sẵn trong theme WordPress.

Mọi theme miễn phí và cao cấp đều nhất đinh phải có file này.

Mục đích của file là cho phép các developer xây dựng các tính năng và chức năng cho theme.

Vì vậy file này nó giống như một plugin WordPress và bạn có thể tự theme các đoạn code đó vào theme.

Bây giờ chắc bạn đang thắc mắc giữa plugin và file fucntion.php. Cái nào tốt hơn?

Trong khi file functions.php thuận tiện hơn, nhưng pluin thường sẽ tốt hơn và nhiều tính năng hơn.

Đơn giản vì plugin có thể hoạt động trên mọi theme (bất kể theme nào)

Mặt khác, file functions.php chỉ hoạt động trên duy nhất theme đó, khi thay đổi giao diện khác.

Bạn sẽ phải copy/paste lại đoạn mã đó sang theme mới.

Nhưng nếu bạn muốn thêm một vài chức năng nho nhỏ vào theme.

Đây vẫn là một cách rất hay và hữu ích nên sử dụng.

32+ Thủ thuật hữu ích khi sử dụng File Function

1. Xóa số phiên bản WordPress đang sử dụng

Bạn nên luôn luôn cập nhật phiên bản mới nhất cho WordPress.

Tuy nhiên nếu bạn vẫn muốn xóa số phiên bản WP đang sử dụng.

Đơn giản là thêm đoạn code sau:

function dieuhau_remove_version() {
return '';
}
add_filter('the_generator', dieuhau_remove_version');

2. Thay logo riêng trong Dashboard

Bạn muốn tùy biến lại giao diện trong Dashboard của WordPress.

Và tùy biến logo riêng cho dashboard chính là một trong những bước đầu.

Đầu tiên bạn sẽ cần upload lên WordPress có kích thước 16×16 pixel.

Sau đó thêm đoạn code sau vào file function.php

3. Thay đổi phần Footer trong WordPress Admin

Bạn có thể thay đổi phần cuối giao diên WordPress của mình bằng cách dán mã dưới đây vào tệp tin Functions.

function remove_footer_admin () {
 
echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | Thu Thuat WordPress <a href="https://www.dieuhau.com" target="_blank">Dieuhau</a>

';
 
}
 
add_filter('admin_footer_text', 'remove_footer_admin');

Bạn cũng có thể muốn loại bỏ Footer Link Powered By WordPress, hãy tham khảo nhé.

4. Thêm custom widget dashboard trong WordPress

Chắc bạn đã từng thấy một loại các widget trong Dashboard lúc mới đăng nhập đúng không.

Bạn hoàn toàn có thể tự tạo các widget đó bằng cách sau:

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
 
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
 
wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}
 
function custom_dashboard_help() {
echo '

Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:[email protected]">here</a>. Thu Thuat WordPress: <a href="https://www.dieuhau.com" target="_blank">DieuHau</a>

';
}

Đây là 25 Widget hữu ich nhất cho Website, mà ban nên biết.

5. Thay đổi Gravatar mặc định trên WordPress

Bạn có muốn thay hình ảnh đại diện mặc định trên WordPress.

Bạn có thể thay thế hình ảnh mặc định bằng một gravatar ( globally regconised avatar) mang thương hiệu cá nhân.

Bạn chỉ cần phải dán mã dưới đây vào tệp tin Functions:

add_filter( 'avatar_defaults', 'dh_new_gravatar' );
function dh_new_gravatar ($avatar_defaults) {
$myavatar = 'http://example.com/wp-content/uploads/2019/01/dh-default-gravatar.png';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
}

Đồng thời hãy thay đổi tên của gravatar thành tên thương hiệu của họ.

Sau khi đã tải ảnh và tính năng này lên, đi đến WP-Admin » Settings » Discussion Gravatar của bạn sẽ được hiển thị.

6. Thay đổi “Copyright Date” ở dưới Footer

Để người dùng có thể biết thêm một số thông tin cơ bản về trang website.

Bạn có thể hiển thị thời gian bản quyền, ví dụ như © 2006 – 2010.

Chúng ta có thể thực hiện thao tác này bằng cách dán mã dưới đây:

function dh_copyright() {
global $dh;
$copyright_dates = $dh->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$dh->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

Sau khi đã thêm chức năng này, hãy mở file footer.php

Và thêm đoạn code dưới đây vào chỗ mà bạn muốn hiển thị thời gian bản quyền này:

<?php echo dh_copyright(); ?>

Đoạn code này đơn giản là tìm ngày đầu tiên và cuối cùng bạn post bài.

Và hiện thị nó ra nơi bạn muốn.

7. Ngẫu nhiên thay đổi Background Color trong WordPress

Bạn có muốn ngẫu nhiên thay đổi màu nền trên WordPress của mình.

Sau mỗi lần truy cập hoặc tải lại trang không?

Chỉ cần thêm đoạn code này vào file functions

function dh_bg() { 
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
echo $color;
}

Tiếp theo, bạn sẽ cần edit file header.php trong theme. Tìm thẻ <body> và thêm đoạn code sau:

<body <?php body_class(); ?> style="background-color:<?php dh_bg();?>">>

8. Cập nhật WordPress URL

Nếu trang đăng nhập WordPress của bạn bị refresh liên tục, và không thể đăng nhập vào admin.

Thì có thể bạn sẽ cần cập nhật lại URL WordPress.

Một cách khác để làm điều này là sử dụng file wp-config.php.

Tuy nhiên, nếu bạn làm thế, bạn sẽ không thể đặt địa chỉ chính xác trên trang cài đặt.

Các trường WordPress URL và URL trang web sẽ bị khóa và không thể chỉnh sửa.

Nếu bạn muốn sửa lỗi này, hãy thêm đoạn code sau vào file function.php.

update_option( 'siteurl', 'http://example.com' );
update_option( 'home', 'http://example.com' );

Thay example bằng tên miền của bạn nhé, khi đăng nhập được rồi.

Hãy vào setting và chỉnh lại URL ở đó. Rồi sau đó xóa đoạn code trên đi nhé. (Không nó sẽ tiếp tục update URL).

9. Thêm kích thước hình ảnh riêng trong WordPress

WordPress tự động generate các kích thước khi upload hình ảnh lên media.

Và bạn cũng có thể tạo các kích thước riêng cho theme của mình.

Bằng sử dụng đoạn code sau:

add_image_size( 'sidebar-thumb', 240, 240, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

Đoạn code này tạo ra 3 kích thước hình ảnh mới với các kích cỡ khác nhau.

Hãy thoải mái tinh chỉnh đoạn mã trên để phù hợp với bạn

Bạn có thể hiển thị kích thước hình ảnh ở bất cứ đâu trong theme bằng đoạn mã này.

<?php the_post_thumbnail( 'homepage-thumb' ); ?>

Nếu bạn muốn ngăn chặn tự động resize ảnh trong WordPress, học đọc qua bài viết này.

10. Thêm Navigation Menu mới vào giao diện

WordPress cho phép các theme developer xác định vị trí các navigation menu và sau đó hiển thị chúng.

Thêm đoạn code này vào file function của theme, để tạo một menu mới trong theme của bạn.

function dh_custom_new_menu() {
  register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'dh_custom_new_menu' );

Bây giờ bạn có thể đi đến Appearance » Menu và bạn sẽ thấy My Custom Menu

Thêm đoạn code này vào theme của bạn, nơi bạn muốn hiển thị menu điều hướng.

<?php wp_nav_menu( array( 'theme_location' => 'my-custom-menu', 
    'container_class' => 'custom-menu-class' ) ); 
?>

Đọc thêm bài hướng dẫn thêm icon vào Menu trong WordPress nhé.

11. Thêm trường thông tin cá nhân tác giả

Nếu bạn muốn tạo một trang tác giả đa năng hơn, bạn có thể thêm một số ô dành cho thông tin tác giả.

Đoan code dưới đây sẽ giúp bạn hiển thị thêm các ô thông tin về facebook và twitter.

Nhưng bạn có thể sử dụng nó để thêm bất kì ô nào khác mà bạn muốn.

function my_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';

return $contactmethods;
}
add_filter('user_contactmethods','my_new_contactmethods',10,1);

Tính năng phía trên sẽ thêm một số thông tin như thế này

Bạn có thể đặt ô vào mẫu author.php bằng cách thêm mã dưới đây:

<?php echo $curauth-&gt;twitter; ?>

** Hướng dẫn này chỉ hoạt động được với phiên bản 2.9 trở lên.

12. Thêm widget hay sider mới vào theme

Đây vẫn là một trong những méo kinh điển và hay được sử dụng nhất.

Dán mã dưới đây vào file functions.php:

// Register Sidebars
function custom_sidebars() {
 
    $args = array(
        'id'            => 'custom_sidebar',
        'name'          => __( 'Custom Widget Area', 'text_domain' ),
        'description'   => __( 'A custom widget area', 'text_domain' ),
        'before_title'  => '




<h3 class="widget-title">',
        'after_title'   => '</h3>





',
        'before_widget' => '




<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>





',
    );
    register_sidebar( $args );
 
}
add_action( 'widgets_init', 'custom_sidebars' );

Bây giờ bạn cần đi đến Appearance » Widget. Bạn sẽ thấy một thanh widget mới.

Để hiển thị sidebar hat widget này trên theme của bạn. Hãy thêm đoạn code sau:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>

13. Thêm RSS feed dưới footer của trang

Bạn đã từng thấy những blog thêm quảng cáo vào RSS Feed của họ dưới mỗi bài viết rồi chứ?

Bạn có có thể làm được điều đó với một chức năng cực kì đơn giản. Dán đoạn code dưới đây vào là được:

function dieuhau_postrss($content) {
if(is_feed()){
$content = 'This post was written by dieuhau '.$content.'Check out Dieuhau';
}
return $content;
}
add_filter('the_excerpt_rss', 'dieuhau_postrss');
add_filter('the_content', 'dieuhau_postrss');

14. Thêm Thumbnail bài viết vào RSS Feeds

Tính năng post thumbnail hay featured image, thường chỉ được hiển thị trong giao diện website

Nhưng bạn có thể mở rộng tính năng này sang RSS feed bằng một đoạn code đơn giản.

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post-&amp;amp;gt;ID)) {
$content = '

' . get_the_post_thumbnail($post-&amp;amp;gt;ID) .
'

' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

15. Xóa những tin nhắn báo lỗi trên trang đăng nhập

Khi bạn nhập sai mật khẩu hay tên người dùng, bạn sẽ nhận được một tin nhắn báo lỗi trên trang đăng nhập.

Nếu như thông báo này chỉ rõ cho người dùng là họ nhập sai mật khẩu hoặc tên đăng nhập.

Thì nó sẽ là khiến hacker có dễ tấn công hơn vào website bạn.

Để hạn chế việc này bạn có thể thêm đoạn sau vào file function.php

function no_wordpress_errors(){
  return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

Bây giờ thì khi xuất hiện một lỗi nào đấy, bạn sẽ chỉ thấy ô trống mà thôi.

16. Vô hiệu hóa đăng nhập bằng email trên WordPress

WordPress cho phép bạn đăng nhập bằng cả user name và email.

Bạn có thể dễ dàng tắt đăng nhập bằng email bằng thêm đoạn code sau vào file funcion

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

17. Tắt tính năng tìm kiếm trên WordPress.

Nếu bạn muốn disable chức năng tìm kiếm trên WordPress

Hãy theme đoạn code sau vào file function.php.

function fb_filter_query( $query, $error = true ) {
 
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
 
// to error
if ( $error == true )
$query->is_404 = true;
}
}
 
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

18. Thêm thời gian chờ đi đăng bài RSS Feed

Đôi khi bạn bỏ quyên một số lỗi ngữ pháp hoặc chính tả trong bài viết của bạn.

Và bạn vô tính publish post đó tới RSS Feed của bạn.

Nếu bạn cho phép đăng ký email trên blog WordPress của mình, thì những người đăng ký đó cũng sẽ nhận được nó.

Để hạn chế lỗi này, hãy thêm thời gian chờ sau mỗi lần publish post

function publish_later_on_feed($where) {
 
    global $dh;
 
    if ( is_feed() ) {
        // timestamp in WP-format
        $now = gmdate('Y-m-d H:i:s');
 
        // value for wait; + device
        $wait = '10'; // integer
 
        // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
        $device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
 
        // add SQL-sytax to default $where
        $where .= " AND TIMESTAMPDIFF($device, $dh-&gt;posts.post_date_gmt, '$now') &gt; $wait ";
    }
    return $where;
}
 
add_filter('posts_where', 'publish_later_on_feed');

Trong đoạn code này tôi đã để thời gian trễn là 10 phút. Hãy thay đổi nó tùy theo sở thích của bạn.

19. Thêm  chữ “Read More” sau đoạn trích dẫn trong WordPress

Bạn có muốn thêm chữ read more, sau đoạn trích trên WordPress.

Đơn giản là thêm đoạn code sau vài file function trong theme.

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' );

20. Tắt chức năng RSS Feed trên WordPress

Không phải website nào cũng cần RSS Feed, nếu không cần bạn hãy xóa chức năng đó bằng đoạn code sau:

function fb_disable_feed() {
wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}
 
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);

21. Thay đổi độ dài đoạn trích trong WordPress

WordPress mặc định độ đài đoạn trích chỉ tối đa 55 từ. Nếu bạn muốn thay đổi con số này, hãy thêm đoạn code sau:

function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

Thay 100 bằng độ dài đoạn trích bạn muốn.

22. Thêm một tài khoản Admin vào WordPress

Nếu bạn quyên cả email tài khoản Admin lẫn mật khẩu, vậy thì bạn có thể thêm 1 tài khoản Admin khác.

Bằng cách chèn đoạn code sau vào file function.php

function dh_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = '[email protected]';
if ( !username_exists( $user )  &amp;&amp; !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user-&gt;set_role( 'administrator' );
} }
add_action('init','dh_admin_account');

Nhớ thay username, password bằng thông tin của bạn, sau khi login thành công.

Hãy xóa đoạn code trên đi nhé. Hoặc bạn có thể tham khảo thêm tài khoản Admin vào WordPress bằng MySQL.

23. Xóa màn hình Welcome từ Dashboard WordPress

Bảng welcome là một màn hình hiện trên Dashboard của WordPress.

Nó cung cấp một số thông tin hữu ích cho người dùng mới.

Bạn có thể dễ dàng xóa nó đi, chỉ bằng đoạn code sau:

remove_action('welcome_panel', 'wp_welcome_panel');

24. Hiện tổng số người dùng đã đăng ký trong WordPress

Nếu bạn muốn hiện thị tổng số người user đã đăng ký trên website của mình.

Đơn giản là thêm một đoạn code sau vào file function.php

// Function to return user count
function dh_user_count() { 
$usercount = count_users();
$result = $usercount['total_users']; 
return $result; 
} 
// Creating a shortcode to display user count
add_shortcode('user_count', 'dh_user_count');

Đoạn mã này cho phép bạn hiển thị tổng số người dùng đã đăng ký trên trang web của bạn.

Bây giờ chỉ thêm đoạn short_code [user_count], vào bài đăng hoặc trang của bạn nơi bạn muốn hiển thị.

25. Loại trừ các category cụ thể khỏi RSS Feed

Bạn có một loại bỏ một danh mục củ thể nào đó khỏi RSS Feed không?

Chỉ cần thêm một đoạn code sau vào file function.php

function exclude_category($query) {
    if ( $query->is_feed ) {
        $query->set('cat', '-5, -2, -3');
    }
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

26. Kích hoạt shortcode trong Widget Text

Mặc định WordPress sẽ không thể chạy được các shortcode trong các widget văn bản.

Để làm đều đó, chỉ cần thêm đoạn code nhỏ sau:

// Enable shortcodes in text widgets
add_filter('widget_text','do_shortcode');

Còn tiếp…..