همه ما وردپرس را دوست داریم ، چیزی که ما را بیشتر عاشق آن می کند ، امکان سفارشی کردن آسانش است.یعنی با مقداری کد می توانید کارهای بزرگی بوسیله وردپرس انجام دهید،مخصوصا اگر از filterها،action ها و hook ها استفاده کنیم.


گرچه وردپرس ۳ + با امکاناتش همه اذهان را متوجه خودش کرد ولی گاهی چیزی که ما نیاز داریم به کل متفاوت از پیش فرض های سیستم است.این همان چیزی است که امروز می خواهیم در موردش صحبت کنیم.

حالا بعضی از هک ها و توابع را خواهیم دید که می توانند در سفارشی کردن وردپرس کمک شایانی به ما بکنند.لطفا با ما همراه باشید.


دریافت خلاصه پست خارج از حلقه

با این ،دیگر نیازی ندارید تا حتما داخل حلقه باشید تا بتوانید خلاصه ای از آن را بیرون بکشید.این امکان مخصوصا زمانی مفید است که می خواهید تعدادی از پست ها را در بخش کناری (sidebar) نمایش دهید ،پس نیازی به داده های اضافی پست ندارید(مثلا فقط عنوان ،لینک و خلاصه )

1
2
3
4
5
6
7
8
9
<?php
    function get_excerpt_outside_loop($post_id) {
        global $wpdb;
        $query = 'SELECT post_excerpt FROM '. $wpdb->posts .' WHERE ID = '. $post_id .' LIMIT 1';
        $result = $wpdb->get_results($query, ARRAY_A);
        $post_excerpt=$result[0]['post_excerpt'];
        return $post_excerpt;
    }
?>






 عدم نمایش نوار مدیریت وردپرس

وردپرس ۳ که آمد همراه خود یک نوار مدیریت سیاه رنگ نیز آورد که برای بعضی ها (مثل بنده) خوش آیند بود ولی برای بعضی های دیگر آزار دهنده یود.حالا اگر از گروه دوم هستید ،با استفاده از این کد می توانید آن را حذف کنید

 

1
2
3
4
5
6
7
8
<?php
    global $current_user;
    get_currentuserinfo();
 
    if ($current_user->ID != 1) {
        add_filter( 'show_admin_bar', '__return_false' );
    }
?>

تنظیم نام ارسال کننده و ایمیل برای wp_mail()

وردپرس به صورت پیش فرض از ایمیل مدیر برای ارسال ایمیل استفاده می کند.ولی این امکان همیشه خوب نیست .شاید شما بخواهید ایمیل تان را به عنوان مدیر در وبلاگ قرار دهید ولی کس دیگری به پیام های تماس ،نظرات و … پاسخ دهد.بنابراین اگر مایل هستید این تنظیمات را تغییر دهید ،می توانید از اسنیپت زیر استفاده کنید:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    function mail_from() {
        $emailaddress = 'contact@fotolia.ir';
        return $emailaddress;
    }
 
    function mail_from_name() {
        $sendername = "Fotolia.ir - Ali";
        return $sendername;
    }
 
    add_filter('wp_mail_from','mail_from');
    add_filter('wp_mail_from_name','mail_from_name');
?>

ایمیل های HTML با تابع wp_mail()

به صورت پیش فرض اگر بخواهبد با تابع wp_mail() ،ایمیلی را در فرمت HTML ارسال کنید ،چیزی که دریافت خواهید کرد یک ایمیل متنی است.البته با قرار دادن تعدادی header این مشکل حل می شود ولی می خواهیم کمی جلوتر رفته و یک قالب (template) برای ایمیل هایمان ایجاد کنیم(مثلا contact.html) که شامل تعدادی متغیر php است و از این پس کافیست آن را در تابع ایمیل فراخوانی کنیم.فایل template من این گونه بود:

1
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
    function mail_from() {
        $emailaddress = 'contact@1stwebdesigner.com';
        return $emailaddress;
    }
 
    function mail_from_name() {
        $sendername = "1stWebDesigner.com - Dainis";
        return $sendername;
    }
 
    add_filter('wp_mail_from','mail_from');
    add_filter('wp_mail_from_name','mail_from_name');
?>
<html></span></h2>
<pre><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
    <table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 600px;">
      <tr>
        <td align="left"><a href="<?php bloginfo('url'); ?>" title="MyBlog"><img src="<?php bloginfo('url'); ?>/logo.png" alt="MyBlog" style="border: none;" ></a></td>
      </tr>
      <tr>
        <td> </td>
      </tr>
      <tr>
        <td align="left">Yo, <?php echo $name; ?>.<br />How are you?</td>
      </tr>
      <tr>
        <td> </td>
      </tr>
      <tr>
        <td>I've recieved your message and we'll answer it soon!</td>
      </tr>
      <tr>
        <td> </td>
      </tr>
      <tr>
        <td align="left" style="background-color: #aeaeae; color:#FFF; font-size: 12px; font-weight: bold; padding: 0.5em 1em;">Original Message</td>
      </tr>
      <tr>
        <td><?php echo $message; ?></td>
      </tr>
      <tr>
        <td> </td>
      </tr>
      <tr>
        <td align="center" style="font-size: 10px; border-top: 1px solid #c10000;">
            <p><i>Thank you!</i><br /><b>MyBlog</b> - <br /><?php bloginfo('url'); ?></p>
        </td>
      </tr>
    </table>
</body>
</html>

و حالا این تابع را با فرم تماس خودمان فراخوانی می کنیم:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
    function contactMail($post) {
        $attachments = "";
        $subject = "[MyBlog] Contact";
        $name = $post["name"];
        $email = $post["email"];
        $message = $post["message"];
        ob_start();
            include(TEMPLATEPATH . '/_mails/contact.html');
            $message = ob_get_contents();
        ob_end_clean();
 
        $headers = "From: me@myblog.com \r\n";
        $headers .= "Return-Path: me@myblog.com \r\n";
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
        $headers .= "BCC: thisIsMe@gmail.com\r\n";
        //$headers .= "BCC: rochesterj@gmail.com\r\n";
        wp_mail( $email, $subject, $message, $headers, $attachments );
    }
?>

محدود کردن دسترسی به wp-admin

شاید بخواهید دسترسی کاربران عضو را به بخش wp-admin قطع کنید،چون واقعا نیازی به ورود به این بخش ندارند ،درسته ؟ خوب انجام این کار خیلی آسان است .کافیست از اسنیپت زیر استفاده کنید.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?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);
?>

مخفی کردن پیام بروز کردن وردپرس بری همه غیر از ادمین عزیز

این پیام هشدار که وردپرس برای بروز کردن نسخه قدیمی به ما می دهید ،خیلی ضروری است و اگر نباشد ممکن است تا چند سال نفهمیم که نسخه جدیدی هم آمده است.ولی کاملا غیر حرفه ای است که کاربران عادی و یا همه غیر از مدیر این پیام را ببینند.درسته ؟پس چکاری انجام دهیم تا فقط برای مدیر نمایش داده شود؟ هیچی ،از کد زیر استفاده کنید :)

1
2
3
4
5
6
7
8
9
10
11
<?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');
?>


مخفی کردن منوهای مدیریت وردپرس

هنگامی که سایت های تکمیل شده را به مشتری ها می فروشیم ،ممکن است از امکانات زیاد آن کاملا سرگیجه بگیرند و عصبی شوند(البته در مقایسه با بعضی ها ،مدیریت وردپرس دلبازتر و راحت تره ;) ).بنابراین چه خوب است که ما گزینه های اضافی را که ممکن است هیچ گاه مورد استفاده قرار نگیرند را حذف کنیم.اینطوری فضای بازتری ایجاد می شود و زحمات ما هم بیشتر نمایان می شود ;) با استفاده از تابع زیر شما می توانید ،بسیاری از گزینه های مدیریت را حذف کنید.می توانید ترکیب اعداد را نیز تغییر دهید تا ببینید دقیقا کدام ها مخفی می شوند !

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
    function remove_dashboard_widgets() {
        global $menu,$submenu;
 
        global $current_user;
        get_currentuserinfo();
 
        if ($current_user->ID != 1) { // only admin sees the whole thing
            // $menu and $submenu will return fo all menu and submenu list in admin panel .
            $menu[2] = ""; //Dashboard
            $menu[5] = ""; // Posts
            $menu[15] = ""; //Links
            $menu[25] = ""; //Comments
            $menu[65] = ""; //Plugins
 
            unset($submenu['themes.php'][5]); //themes
            unset($submenu['themes.php'][12]); //editor
        }
    }
    add_action('admin_head', 'remove_dashboard_widgets');
?>

بروزشده : برای راحتی کار می توانید از پلاگین Role Manager هم استفاده کنید.از حامد عزیز برای معرفی این افزونه ممنونیم.

انتقال به یک صفحه متفاوت به جای داشبورد

اگر شما داشبورد را مخفی کنید ،هنگام مراجعه کاربران ،بهتر است به جای خطای عدم وجود صفحه ،آن را به یک صفحه دیگر راهنمایی کنیم.بنابراین وقتی به wp-admin مراجعه می کنند، ما با کد زیر آنها را به یک صفحه دیگر می بریم :

1
2
3
4
5
6
7
8
9
10
11
<?php
    if ( is_admin() ) {
        $url = $_SERVER['SCRIPT_NAME'];
        $url = explode('/', $url);
        $tam = count($url);
        if ( $url [ ( $tam - 1 ) ] == "index.php" ) {
            $url = 'Location: ' . get_bloginfo('url') . "/wp-admin/edit.php?post_type=page";
            header( $url );
        }
    }
?>

 

امیدوارم این کدها به دردتون بخوره ،موفق باشید :)



نظرات () نویسنده: ali j چهارشنبه 28 تیر 1391 - 03:21 ب.ظ

آخرین مطالب

» فعال‌سازی ویژگی Do Not Track در گوگل کروم ! ( یکشنبه 27 اسفند 1391 )
» 7ترفند برای افزایش امنیت مودم های بی سیم !! ( یکشنبه 27 اسفند 1391 )
» اینترنت افلاین! ( یکشنبه 27 اسفند 1391 )
» دانلود مسنجر قدرتمند برای جاوا ( جمعه 17 شهریور 1391 )
» باز كردن چندین آیدی در یاهو مسنجر بدون هیچ برنامه ای! ( پنجشنبه 2 شهریور 1391 )
» یاهو مسنجر را در مقابله با هک مقاوم کنیم ( سه شنبه 10 مرداد 1391 )
» ۸ هک کاربردی برای سفارشی تر کردن وردپرس ( چهارشنبه 28 تیر 1391 )
» چگونه ایمیل شما هک می شود؟ ( چهارشنبه 28 تیر 1391 )
» راهی برای پیدا کردن IP فرسنده ایمیل , در یاهو. ( شنبه 20 خرداد 1391 )
» دو فولدر با نام یکسان در یک مکان بسازید!! ( شنبه 20 خرداد 1391 )
» نحوه تبدیل فرمت هارد درایو یا فلش درایو از FAT32 به NTFS ( چهارشنبه 2 فروردین 1391 )
» طریقه وارد كردن متون نستعلیق با بهترین كیفیت در فتوشاپ ( دوشنبه 29 اسفند 1390 )
» نحوه ساخت رمز عبور تصویری در «ویندوز 8» ( پنجشنبه 4 اسفند 1390 )
» پرینتر های لیزری و بمب ساعتی !!! ( چهارشنبه 19 بهمن 1390 )
» مراحل اولیه ایجاد امنیت در شبکه!!!!!!!! ( چهارشنبه 19 بهمن 1390 )
 

نظرسنجی

وبلاگ را چگونه میبینید؟



ADS

آمار بازید

کل بازدید ها :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل مطالب :
آخرین بروز رسانی :

درباره ما

ساخت وبلاگ در میهن بلاگ

شبکه اجتماعی فارسی کلوب | ساخت وبلاگ صوتی صدالاگ | سوال و جواب و پاسخ | رسانه فروردین، تبلیغات اینترنتی، رپرتاژ، بنر، سئو | Buy Website Traffic