برای این ساعت از سایت , قصد دارم چندی از ترفند ها یا همان هک های مهم و کاربردی سیستم مدیریت محتوای وردپرس را معرفی کنم .
هک در وردپرس , به معنای اضافه , حذف و یا ویرایش قسمت هایی از سیستم وردپرس می باشد .
این قسمت ها , هم میتواند در بخش مدیریت این سیستم باشد و هم میتواند در بخش قالب و دیزاین سایت باشد .
در زیر سعی دارم بخش کوچکی از این کد ها را معرفی کنم تا با استفاده از آنها بتونید سایت وردپرسی خود را سفارشی تر و حرفه ای تر بسازید …
1 – نمایش تعداد تمامی پست های سایت از ابتدا تا کنون :
2
3
4
5
6
7
8
|
<?php echo $numposts = $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = ‘publish'”);
if (0 < $numposts) $numposts = number_format($numposts);
?>
|
2 – نمایش مطالب تصادفی :
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php
query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 1));
if (have_posts()) :
while (have_posts()) : the_post();
the_title();
the_excerpt();
endwhile;
endif;
?>
|
3 – عدم نمایش نوار سیاه رنگ مدیریت در سایت : ( در فایل functions.php درج شود )
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
global $current_user;
get_currentuserinfo();
if ($current_user->ID != 1) {
add_filter( ‘show_admin_bar’, ‘__return_false’ );
}
?>
|
4 – عدم دسترسی کاربران سایت به wp-admin ( در فایل functions.php درج شود )
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
function restrict_access_admin_panel(){
global $current_user;
get_currentuserinfo();
if ($current_user->user_level < 4) { //if not admin, die with message
wp_redirect( get_bloginfo(‘url’) );
exit;
}
}
add_action(‘admin_init’, ‘restrict_access_admin_panel’, 1);
?>
|
5 – عدم نمایش قسمت بروزرسانی وردپرس برای کاربران – بجز مدیریت ( در فایل functions.php درج شود )
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php
function wp_hide_update() {
global $current_user;
get_currentuserinfo();
if ($current_user->ID != 1) { // only admin will see it
remove_action( ‘admin_notices’, ‘update_nag’, 3 );
}
}
add_action(‘admin_menu’,’wp_hide_update’);
?>
|
6 – افزایش کیفیت عکس های آپلود شده ( در فایل functions.php درج شود )
وردپرس به صورت پیشفرض عکس آپبود شده را optimize و فشرده میکند که باعث میشود کیفیت عکس کمی پایین برود . برای جلوگیری از این کار , از کد زیر استفاده نمایید .
2
3
4
5
6
7
8
9
10
11
|
<?php
add_filter( ‘jpg_quality’, ‘high_jpg_quality’ );
function high_jpg_quality() {
return 100;
}
?>
|
7 – اجرای ShortCode ها در خارج از حلقه ( هر جایی از قالب وردپرس )
2
3
4
5
6
|
<?php echo do_shortcode(“[shortcode]”); ?>
|
8 – افزودن لوگوی اختصاصی خود در قسمت مدیریت : ( در فایل functions.php درج شود ) . ( در خط چهارم , تغییرات خود را انجام دهید )
2
3
4
5
6
7
8
9
10
11
|
<?php add_action(‘admin_head’, ‘custom_logo’);
function custom_logo() {
?>
<a href=”http://xn--mgbguh09aqiwi.com” target=”_blank”><img style=”position:absolute; left:10px; bottom:10px; z-index:1000; width:150px; display:block” src=”http://xn--mgbguh09aqiwi.com/wp-content/uploads/2013/11/logo.png”/></a>
<?php
} ?>
|
9 – حذف ورژن وردپرس از سورس قالب وردپرس ( در فایل functions.php درج شود )
2
3
4
5
6
|
<?php remove_action(‘wp_header’, ‘wp_generator’); ?>
|
10 – تغییر تمامی لینک های وردپرس در قالب , به Nofollow ( در فایل functions.php درج شود )
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php function no_follow( $links ) {
foreach($links as $link) {
$link->link_rel .= ‘ nofollow’;
$link->link_rel = trim($link->link_rel);
}
return $links;
}
add_filter(‘get_bookmarks’, ‘no_follow’); ?>
|
11 – تغییر تعداد کلمات تابع the_excerpt ( در فایل functions.php درج شود )
2
3
4
5
6
7
8
9
|
<?php function custom_excerpt_length( $length ) {
return 50;
}
add_filter( ‘excerpt_length’, ‘custom_excerpt_length’, 999 ); ?>
|
12 – فعال سازی قسمت پیوند ها به وردپرس ( در فایل functions.php درج شود )
2
3
4
5
6
|
<?php add_filter( ‘pre_option_link_manager_enabled’, ‘__return_true’ ); ?>
|
13 – افزودن یک یاکس توضیحات دلخواه شما , در هنگام افزودن نوشته و برگه جدید در قسمت مدیریت ( در فایل functions.php درج شود )
توجه : با توجه به توضیحات خود , تغییر دهید .
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php function text_after_title( $post_type ) {?>
<div class=”after-title-help postbox”>
<h3>توجه : </h3>
<div class=”inside”>
<ol>
<li>ترجیها از برچسب برای هر نوشته استفاده شود</li>
<li>برای نمایش تصویر شاخص هر پست در صفحه ی اصلی , حتما باید عکس خود را در تصویر شاخص ( در قسمت پایین و چپ ) انتخاب نمایید</li>
<li>حتما در تمامی پست های خود از ادامه مطلب ( Read More ) استفاده نمایید</li>
<li>با تشکر : وحید مجیدی</li>
</ol>
<p></p>
</div>
</div>
<?php }
add_action( ‘edit_form_after_title’, ‘text_after_title’ ); ?>
|
14 – تغییر نام ارسال کننده ایمیل از کلمه وردپرس , به کلمه مورد نظر شما ( در فایل functions.php درج شود )
توجه : به جای ایمیل و کلمه اسکریپت دات کام , موارد خود را بنویسید .
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php add_filter(‘wp_mail_from’, ‘new_mail_from’);
add_filter(‘wp_mail_from_name’, ‘new_mail_from_name’);
function new_mail_from($old) {
return ‘info@اسکریپت.com’;
}
function new_mail_from_name($old) {
return ‘اسکریپت دات کام’;
} ?>
|
15 – اضافه کردن FavIcon به وب سایت وردپرسی ( در فایل functions.php درج شود ) .
توجه : عکسی در سایز 16*16 , با پسوند ico و با سام favicon در روت سایت خود آپلود کنید .
2
3
4
5
6
7
8
9
|
<?php function blog_favicon() {
echo ‘<link rel=”Shortcut Icon” type=”image/x-icon” href=”‘.get_bloginfo(‘wpurl’).’/favicon.ico” />’;
}
add_action(‘wp_head’, ‘blog_favicon’); ?>
|
16 – تغییرGravatar پیش فرض وردپرس , به آدرس دلخواه خود ( در فایل functions.php درج شود )
توجه : در آخر خط 3 , آدرس عکس خود را قرار دهید .
2
3
4
5
6
7
8
9
10
11
|
<?php add_filter( ‘avatar_defaults’, ‘newgravatar’ );
function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo(‘template_directory’) . ‘/images/gravatar.gif’;
$avatar_defaults[$myavatar] = “Mirani.ir”;
return $avatar_defaults;
} ?>
|
17 – تعویض نوشته ی فوتر ناحیه مدیریت وردپرس ( در فایل functions.php درج شود )
توجه : در خط 2 , آدرس عکس خود را قرار دهید .
2
3
4
5
6
7
8
9
|
<?php function modify_footer_admin () {
echo ‘Develop By <a href=”http://xn--mgbguh09aqiwi.com”>اسکریپت دات کام</a>’;
}
add_filter(‘admin_footer_text’, ‘modify_footer_admin’); ?>
|
18 – جستجو فقط در عناوین پست ها ( در فایل functions.php درج شود )
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?php
function __search_by_title_only( $search, &$wp_query )
{
global $wpdb;
if ( empty( $search ) )
return $search; // skip processing – no search term in query
$q = $wp_query->query_vars;
$n = ! empty( $q[‘exact’] ) ? ” : ‘%’;
$search =
$searchand = ”;
foreach ( (array) $q[‘search_terms’] as $term ) {
$term = esc_sql( like_escape( $term ) );
$search .= “{$searchand}($wpdb->posts.post_title LIKE ‘{$n}{$term}{$n}’)”;
$searchand = ‘ AND ‘;
}
if ( ! empty( $search ) ) {
$search = ” AND ({$search}) “;
if ( ! is_user_logged_in() )
$search .= ” AND ($wpdb->posts.post_password = ”) “;
}
return $search;
}
add_filter( ‘posts_search’, ‘__search_by_title_only’, 500, 2 );
?>
|
19 – غیر فعال کردن راست کلیک در صفحات ( درج در header.php و بین دو تگ <head> و <head/> )
2
3
4
5
6
7
8
9
10
11
12
|
<script type=”text/javascript”>
$(document).ready(function(){
$(document).bind(“contextmenu”,function(e){
return false;
});
});
</script>
|
20 – خالی کردن اتوماتیک زباله دان ( درج در wp-config.php )
2
3
4
5
6
|
define(‘EMPTY_TRASH_DAYS’, 5 );
|