جهت ورود به تالار گفتمان سایت کلیک کنید


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

برای این ساعت از سایت اسکریپت دات کام , قصد دارم چندی از ترفند ها یا همان هک های مهم و کاربردی سیستم مدیریت محتوای وردپرس را معرفی کنم .

هک در وردپرس , به معنای اضافه , حذف و یا ویرایش قسمت هایی از سیستم وردپرس می باشد .

این قسمت ها , هم میتواند در بخش مدیریت این سیستم باشد و هم میتواند در بخش قالب و دیزاین سایت باشد .

در زیر سعی دارم بخش کوچکی از این کد ها را معرفی کنم تا با استفاده از آنها بتونید سایت وردپرسی خود را سفارشی تر و حرفه ای تر بسازید …

1 – نمایش تعداد تمامی پست های سایت از ابتدا تا کنون :

<?php echo $numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
if (0 < $numposts) $numposts = number_format($numposts); 
?>

2 – نمایش مطالب تصادفی :

<?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 درج شود )

<?php
 global $current_user;
 get_currentuserinfo();
 
 if ($current_user->ID != 1) {
 add_filter( 'show_admin_bar', '__return_false' );
 }
?>

4 – عدم دسترسی کاربران سایت به wp-admin ( در فایل functions.php درج شود )

<?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 درج شود )

<?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 و فشرده میکند که باعث میشود کیفیت عکس کمی پایین برود . برای جلوگیری از این کار , از کد زیر استفاده نمایید .

<?php
add_filter( 'jpg_quality', 'high_jpg_quality' );
function high_jpg_quality() {
return 100;
} 
?>

7 – اجرای ShortCode ها در خارج از حلقه ( هر جایی از قالب وردپرس )

<?php echo do_shortcode("[shortcode]"); ?>

8 – افزودن لوگوی اختصاصی خود در قسمت مدیریت : ( در فایل functions.php درج شود ) . ( در خط چهارم , تغییرات خود را انجام دهید )

<?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 درج شود )

<?php remove_action('wp_header', 'wp_generator'); ?>

10 – تغییر تمامی لینک های وردپرس در قالب , به Nofollow ( در فایل functions.php درج شود )

<?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 درج شود )

<?php function custom_excerpt_length( $length ) {
	return 50;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); ?>

12 – فعال سازی قسمت پیوند ها به وردپرس ( در فایل functions.php درج شود )

<?php add_filter( 'pre_option_link_manager_enabled', '__return_true' ); ?>

13 – افزودن یک یاکس توضیحات دلخواه شما , در هنگام افزودن نوشته و برگه جدید در قسمت مدیریت ( در فایل functions.php درج شود )

توجه : با توجه به توضیحات خود , تغییر دهید .

<?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 درج شود )

توجه : به جای ایمیل و کلمه اسکریپت دات کام , موارد خود را بنویسید .

<?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 در روت سایت خود آپلود کنید .

<?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 , آدرس عکس خود را قرار دهید .

<?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 , آدرس عکس خود را قرار دهید .

<?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 درج شود )

<?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/> )

<script type="text/javascript">
$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
        return false;
    });
});
</script>

20 – خالی کردن اتوماتیک زباله دان ( درج در wp-config.php )

define('EMPTY_TRASH_DAYS', 5 );

 گرداوری : وحید مجیدی

پخش اختصاصی

جهت تبادل گفتگو و حل مشکلات در باره این موضوع , کلیک کنید

20 پاسخ به “هک و ترفند های مهم مدیریت محتوا وردپرس”

  1. رئیسی گفت:

    یه سوال دیگه هم داشتم جسارتا

    پیوند یکتا رو دقیقا چطوری قرار بدیم بهترین هستش ؟

    مثلا پایانش آزاد باشه ، مثل کاری که من کردم
    یا پایانش یک اسلش باشه /
    یا پایانش دات اچ تی ام ای باشه .html

    کدوم بهتره و چرا ؟

    ممنون و ببخشید

    • وحید مجیدی گفت:

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

      /%postname%.html

      • رئیسی گفت:

        سلام و ممنونم از پاسختون به 2 تا سوالم
        اما در خصوص این دومیه ، سوالم طریقه ساخت اینگونه پیوند یکتاها نبود

        بلکه منظورم این بود که پایان این پیوند یکتا با کدوم یک از اون سه 3 حالتی که بیان کردم ، تموم بشه بهتره ؟ و چرا ؟

        • وحید مجیدی گفت:

          قطعا .html

          چون موتور های جستجو از جمله گوگل , فوق العاده برای صفحات html بیشتر ارزش قائل هستند تا php یا asp و …

  2. رئیسی گفت:

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

    من وردپرس رو نصب کردم ، و وقتی که ارسال مطلب میکنم یه مشکلی وجود داره
    اگه عنوان مطلب طولانی باشه ، عنوان نصفه نیمه ارسال میشه

    باید چکار کرد که این مشکل رفع شه ؟

    البته این رو فعلا برای تست نصب کردم :

    http://hamsaran.xzn.ir/%D8%B9%DA%A9%D8%B3%DB%8C-%D8%A7%D8%B2-%D8%AF%D9%88%D8%B1%D8%A7%D9%86-%D8%AC%D9%88%D8%A7%D9%86%DB%8C%E2%80%8C-%D8%A8%D9%87%D9%85%D9%86-%D9%87%D8%A7%D8%B4%D9%85%DB%8C-%D9%85%D8%AC%D8%B1%DB%8C-%D8%AA

    خواهشا تو مرورگر رو نگاه کنید که ناقصه عنوان من :

    عکسی از دوران جوانی‌ بهمن هاشمی مجری تلویزیون
    شده :
    عکسی از دوران جوانی‌ بهمن هاشمی مجری ت

    ****************

    ببینید من همین الان یک پست جدید دادم و دقیقا کپی کردم

    من پست سایت خودم رو با سایت مرجع رو بهتون میدم ببینید تفاوت دارند
    و تو پنجره مرورگر برای سایت من نصفه میاد و برای سایت مرجع کامل میاد :

    http://hamsaran.xzn.ir/%d8%b7%d8%b1%d8%ad-%d8%a8%db%8c-%d8%b3%d8%a7%d8%a8%d9%82%d9%87-%d9%85%d8%ac%d9%84%d8%b3-%d8%a8%d8%b1%d8%a7%db%8c-%d8%ad%d9%85%d8%a7%db%8c%d8%aa-%d8%a7%d8%b2-%d8%a7%d8%b2%da%a9%d8%a7%d8%b1%d9%81%d8%aa

    و سایت اصلی :

    http://www.fardanews.com/fa/news/424117/%D8%B7%D8%B1%D8%AD-%D8%A8%DB%8C-%D8%B3%D8%A7%D8%A8%D9%82%D9%87-%D9%85%D8%AC%D9%84%D8%B3-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AD%D9%85%D8%A7%DB%8C%D8%AA-%D8%A7%D8%B2-%D8%A7%D8%B2%DA%A9%D8%A7%D8%B1%D9%81%D8%AA%D8%A7%D8%AF%DA%AF%D8%A7%D9%86-%D8%A8%DB%8C-%D8%AF%D8%B1%D8%A2%D9%85%D8%AF

    این کامله و حتما توی کدهاش تغییرات کوچیکی داده

    خواهشا بهم بگید باید چکار کنم
    ممنون میشم ازتون

    • وحید مجیدی گفت:

      در ابتدا باید بگم کاملا این قضیه سئویی هست و بزارید باشه . باید در پیوند یکتا خلاصه ای از تیتر را وارد نمایید

      اما اگر میخواهید بر دارید این محدودیت رو :

      1.از پوشه ی wp-includes فایل formatting.php را باز کنید در خط 980 این عبارت را بیابید
      $title = utf8_uri_encode($title, 200);
      و عدد 200 را به هر عددی مایلید تغییر دهید
      2.
      از همان پوشه فایل post.php را باز کنید و در خطوط 3094 و 3111 و 3125 عبارت زیر را پیدا کرده و عدد 200 را به عدد دلخواه تغییر دهید
      $alt_post_name = substr ($slug, 0, 200 – ( strlen( $suffix ) + 1 ) ) . “-$suffix”;
      توضیح: اینگونه تغییرات که اصولا غیر استاندارد هستند ممکن است بعد از هر بار به روز رسانی نیاز به تجدید دوباره داشته باشند

      • رئیسی گفت:

        سلام مجدد
        همین الان تست کردم
        کارایی رو که گفتید دقیق انجام دادم
        نشد متاسفانه
        و پست رو به جای اینکه با پیوند یکتا بیاره به این صورت میاره :
        http://hamsaran.xzn.ir/?p=25

        البته تو خود سایت نمایش داده نمیشه و حتی توی نوشته های پیشین توی پنل مدیریت هم نمیاد ، ظاهرا اصلا پستی ارسال نمیشه !

        در ضمن عین عبارت دومی که فرمودید در پوشه post.php نیست :

        $alt_post_name = substr ($slug, 0, 200 – ( strlen( $suffix ) + 1 ) ) . “-$suffix”;

        3 تا عبارت شبیه بودند که اونها رو تغییر دادم
        مثلا alt_post_name رو وردپرس من تو اون پوشه نداره
        اما بقیه کاراکترها رو داره

        ممنون از شما

        • وحید مجیدی گفت:

          امکان داره در ورژن جدید برداشته شده از اون خط .

          ضمنا اصلا روی localhost و هاست های رایگان نباید تست بشه

          توی نت یه جستجو کنید راه هایی بیان شده

  3. سعید گفت:

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

  4. دانلود گفت:

    مرسی از سایت خوبتون همه چی عالیه ! تشکر میکنم

  5. عکس گفت:

    ممنون

  6. مگ گفت:

    عالی بوووووود

    ممنون

  7. hamidr گفت:

    ممنون . عالی بود

  8. dashesi_lamer گفت:

    این کد اسکرل اتوماتیک به بالا رو هم بذاری ممنون میشم استایلش باحال دادا ممنون از مطالب مفیدت

  9. dashesi_lamer گفت:

    niceeeeeeeeeeeeeeeeeeeeeeee

  10. میلاد گفت:

    ُسلام
    ببخشید من بازم اومدم با یه سوال.

    می خواستم بدونم اگر ما به دلیلی نخواهیم و یا این که نتونیم از – یا همون دش برای جداکردن کلمات موجود در تگ ها استفاده کنیم، به نظر شما برای بهبود سئو استفاده از _ بهتره یا + ؟
    به عنوان مثال:
    آقای_وحید_مجیدی
    یا
    آقای+وحید+مجیدی
    کدوم مناسب تره؟

    • وحید مجیدی گفت:

      سلا داداش گلم .
      100% کارکتار آندرلاین ( _ ) بهره …

      • میلاد گفت:

        ممنون به خاطر پاسخ گوییتون
        شرمنده من یه سوال دیگه هم دارم در مورد سئو، اگه وقتی داشتی جواب بدی ممنون میشم.
        همون طور که می دونید و اگه اشتباه نکنم تو همین سایت هم در موردش گفتید تعداد لینک های موجود در صفحه باید خیلی زیاد نباشه که ظاهرا حدوده 100 تا مناسبه، حالا سوال من اینه که اگر مثلا ما تو یه صفحه ای 150 تا لینک داشته باشیم اما 50 تا از اون ها رو با robot.txt دسترسی گوگل رو ممنوع کرده باشیم و فقط به درد کاربرها بخوره، مشکل حل میشه یا نه؟
        بعد اگه تو یه مثلا صفحه ی A که ما توسط فایل روبوت ورود گوگل رو ممنوع اعلام کردیم، بیایم لینک به صفحات B و C بدیم ( یعنی لینک این دو صفحه فقط در صفحه ی A هستش) آیا اسپایدر گوگل صفحات B و C رو ایندکس می کنه؟

        خیلی ممنون.

        • وحید مجیدی گفت:

          اولا تعداد لینک هایی که میفرمایید , بسیار پایین تر هست و 100 تا نیست .

          اگر از روی موتور های جستجو این صفحات را مخفی کرده باشید , طبیعتا مشکلی پیش نمیاد . اما خوب چه کاریه :D

پاسخ دادن به رئیسی لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *