Tips dan Trik Menggunakan functions.php di WordPress
Tips dan Trik Menggunakan functions.php di WordPress
Daftar Isi
Semua WordPress menggunakan file functions.php. Ini adalah semacam plugin yang kita bebas menggunakannya.
Sekarang, ada beberapa tips dan trik menggunakan file ini di WordPress untuk berbagai keperluan.
Setiap theme atau template memiliki functions.php. Gunanya memang supaya setiap orang bisa mendefinisikan fungsi dan feature dari theme masing – masing.
File ini gunanya mirip plugin dan bisa kita gunakan untuk menambah code snippets di WordPress.
Sekarang, kita bertanya.
Apa bedanya menggunakan functions.php dengan plugin yang khusus untuk 1 situs?
Menambah code snippet di functions.php lebih ringkas. Ini karena kita hanya perlu code yang kita perlukan saja.
Tetapi, code ini tidak bisa dibawa jika theme kita berubah. Harus kita copy paste codenya di theme yang baru.
Untuk plugin, kita hanya menginstal pluginnya. Jika berganti theme atau template, kita bisa mempertahankan fungsi pluginnya.
Tetapi, plugin biasanya kurang ringkas dibanding snippet sederhana.
Untuk penggunanannya tentu terserah kepada kita. Tetapi, kita melakukan banyak hal jika ingin menggunakan snippet di functions.php.
Beberapa diantaranya:
Tips dan Trik menggunakan functions.php di Wordpres
1. Menghapus versi WordPress kita:
Kita gunakan code berikut di functions.php.
function
wpb_remove_version() {
return
''
;
}
add_filter(
'the_generator'
,
'wpb_remove_version'
);
2. Menambah logo dasboard custom.
function
wpb_custom_logo() {
echo
'
<style type=
"text/css"
>
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(
' . get_bloginfo('
stylesheet_directory
') . '
/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action(
'wp_before_admin_bar_render'
,
'wpb_custom_logo'
)
2.
3. mengganti footer di panel Admin wordpess.
f
unction
remove_footer_admin () {
echo
'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://www.lawangtechno.com" target="_blank">Lawang Techno</a></p>'
;
}
add_filter(
'admin_footer_text'
,
'remove_footer_admin'
);
4. Tanggal copyright dinamis di footer
function
wpb_copyright() {
global
$wpdb
;
$copyright_dates
=
$wpdb
->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb
->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
;
}
<?php
echo
wpb_copyright(); ?>
5. Mengganti warna background atau warna latar website.
function
wpb_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
;
}
<body <?php body_class(); ?> style=
"background-color:<?php wpb_bg();?>"
>>
6. Menambah ukuran gambar di WordPress.
add_image_size(
'sidebar-thumb'
, 120, 120, true );
// Hard Crop Mode
add_image_size(
'homepage-thumb'
, 220, 180 );
// Soft Crop Mode
add_image_size(
'singlepost-thumb'
, 590, 9999 );
// Unlimited Height Mode
<?php the_post_thumbnail(
'homepage-thumb'
); ?>
7. Menambah Menu di theme kita.
function
wpb_custom_new_menu() {
register_nav_menu(
'custom-menu-saya'
,__(
'Custom Menu Saya'
));
}
add_action(
'init'
,
'wpb_custom_new_menu'
);
<?php
wp_nav_menu(
array
(
'theme_location'
=>
'my-custom-menu'
,
'container_class'
=>
'custom-menu-class'
) );
?>
8. Menambah FB dan Twitter di Author WordPress.
function
wpb_new_contactmethods(
$contactmethods
) {
// Add Twitter
$contactmethods
[
'twitter'
] =
'Twitter'
;
//add Facebook
$contactmethods
[
'facebook'
] =
'Facebook'
;
return
$contactmethods
;
}
add_filter(
'user_contactmethods'
,
'wpb_new_contactmethods'
,10,1);
9. Menambah area widget di sidebar
// 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'
);
<?php
if
( !function_exists(
'dynamic_sidebar'
) || !dynamic_sidebar(
'custom_sidebar'
) ) : ?>
<!–Default sidebar info goes here–>
<?php
endif
; ?>
10. Menempatkan RSS feed di bawah setiap post
function
wpbeginner_postrss(
$content
) {
if
(is_feed()){
$content
=
'This post was written by Syed Balkhi '
.
$content
.
'Check out WPBeginner'
;
}
return
$content
;
}
add_filter(
'the_excerpt_rss'
,
'wpbeginner_postrss'
);
add_filter(
'the_content'
,
'wpbeginner_postrss'
);
11. Menambahkan featured image di RSS feed
function
rss_post_thumbnail(
$content
) {
global
$post
;
if
(has_post_thumbnail(
$post
->ID)) {
$content
=
'<p>'
. get_the_post_thumbnail(
$post
->ID) .
'</p>'
. get_the_content();
}
return
$content
;
}
add_filter(
'the_excerpt_rss'
,
'rss_post_thumbnail'
);
add_filter(
'the_content_feed'
,
'rss_post_thumbnail'
);
12. Menunda posting RSS
function
publish_later_on_feed(
$where
) {
global
$wpdb
;
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, $wpdb->posts.post_date_gmt, '$now') > $wait "
;
}
return
$where
;
}
add_filter(
'posts_where'
,
'publish_later_on_feed'
);
13. Menonaktifkan RSS Feed di WordPress dengan functions.php
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);
14. Mengecualikan kategori tertentu dari RSS Feed dengan functions.php:
function
exclude_category(
$query
) {
if
(
$query
->is_feed ) {
$query
->set(
'cat'
,
'-5, -2, -3'
);
}
return
$query
;
}
add_filter(
'pre_get_posts'
,
'exclude_category'
);
15. Cara mengganti panjang excerpt di WordPress dengan functions.php
function
new_excerpt_length(
$length
) {
return
100;
}
add_filter(
'excerpt_length'
,
'new_excerpt_length'
);
16. Cara membuat shortcode di widget.
// Enable shortcodes in text widgets
add_filter(
'widget_text'
,
'do_shortcode'
);
17. Memberi warna berbeda untuk post ganjil dan genap di WordPress dengan functions.php.
function
oddeven_post_class (
$classes
) {
global
$current_class
;
$classes
[] =
$current_class
;
$current_class
= (
$current_class
==
'odd'
) ?
'even'
:
'odd'
;
return
$classes
;
}
add_filter (
'post_class'
,
'oddeven_post_class'
);
global
$current_class
;
$current_class
=
'odd'
;
.even {
background
:
#f0f8ff
;
}
.odd {
background
:
#f4f4fb
;
}