14 قطعه کد مفید برای ایجاد تغییرات در وردپرس

قطعه کد در وردپرس

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

قطعه کد در وردپرس

راه های زیادی برای استفاده از قطعه کدها وجود دارد که اکثر آنها باید برای ایجاد تغییر در فایل function.php قرار بگیرند. زیرا این فایل در قالب شما بسیار کاربردی و خاص است و باید بسیار مواظب باشید تا به مشکل نخورد و تخریب نشود. برای مقابله با تخریب این فایل چند راه پیش رو دارید:

  1. یک افزونه ی سفارشی بنویسید
  2. از افزونه های پشتیبانی از قطعه کد در وردپرس استفاده کنید
  3. استفاده از افزونه های مخصوص به قالب
  4. استفاده از child theme و قرار دادن قطعه کدها درون آن

استفاده از افزونه ی رایگان code snippets به شما امکان تنظیمات سفارشی در سایت را می دهد و دیگر نیازی به تغییرات فایل function نخواهید داشت.حال اگر موافق باشید قطعه کدهایی را برای تغییرات مختلف با هم بررسی کنیم.

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

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

function content_twitter_mention($content) {
return preg_replace('/([^a-zA-Z0-9-_])@([0-9a-zA-Z_]+)/', $1@$2, $content);
}
add_filter('the_content', 'content_twitter_mention');
add_filter('comment_text', 'content_twitter_mention');

استفاده از شورت کد ها در ابزارک

گاهی میخواهید امکانی را در ابزارک های سایت خود قرار دهید اما این امکان تنها با کمک شورت کد امکان پذیر است. میتوانید برای اینکه این امکان را در سایت خود فعال کنید از قطعه کد در وردپرس استفاده نمایید:

add_filter( 'widget_text', 'do_shortcode' );

ریدایرکت کردن کردن کاربر پس از ثبت نام

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

function wps_registration_redirect(){
return home_url( '/finished/' );
}
add_filter( 'registration_redirect', 'wps_registration_redirect' );

ایجاد محدودیت در بازنگری پست ها

با هر بار بازنگری نوشته ها در وردپرس، اطلاعات دوباره در پایگاه داده ذخیره میشود برای حل این مشکل می توانید از قطعه کد زیر استفاده کنید:

if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);

استفاده از سال در نوشته ها

چنانچه دوست دارید تاریخ و سال در نوشته های شما نمایان شود کافیست از کد زیر برای این امکان بهره مند شوید:

function year_shortcode() {
$year = date('Y');
return $year;
}
add_shortcode('year', 'year_shortcode');

حذف امکان حفاظت از عناوین

در هر موردی که میخواهید نوشته ای را منتشر کنید به لحاظ امنیتی عنوان نوشته ی شما بررسی میشود برای اینکه بتوانید بدون محدودیت نوشته ی خود را ایجاد کنید میتوانید از قطعه کد در وردپرس کمک بگیرید:


function the_title_trim($title){

$title = attribute_escape($title);

$findthese = array(
'#Protected:#',
'#Private:#'
);
$replacewith = array(
'', // What to replace Protected with
'' // What to replace Private with
);
$title = preg_replace($findthese, $replacewith, $title);
return $title;
}
add_filter('the_title', 'the_title_trim');

نمایش تاریخ نوشته ها

حتما محتوایی که در گذشته منتشر شده روزی نیازمند بروزرسانی و افزودن اطلاعات جدید به آن است. برای اینکه بعد از بروزرسانی تاریخ انتشار نیز به روز شود و نیاز به تقییر دستی نباشد میتوانید از قطعه کد در وردپرس استفاده کنید:

Posted on <?php the_time('F jS, Y') ?> <?php $u_time = get_the_time('U'); $u_modified_time = get_the_modified_time('U'); if ($u_modified_time != $u_time) { echo "and last modified on "; the_modified_time('F jS, Y'); echo ". "; } ?>

حذف شماره ورژن وردپرس

چنانچه میخواهید شماره نسخه ی وردپرس خود را پنهان کنید از کد زیر استفاده نمایید:

<?php 
// Remove the version number of WP
// Warning - this info is also available in the readme.html file in your root directory - delete this file!
remove_action('wp_head', 'wp_generator');

?>

حذف فیلد آدرس در دیدگاه ها

از این رو که اسپمرها به سمت دیدگاه ها می آیند و مشکلات زیادی به وجود می آورند بهتر است فیلد آدرس را در این بخش حذف کنید:

function remove_comment_fields($fields) {
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

نمایش تعداد تصاویر ضمیمه شده در نوشته

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

add_filter('manage_posts_columns', 'posts_columns_attachment_count', 5); add_action('manage_posts_custom_column', 'posts_custom_columns_attachment_count', 5, 2); function posts_columns_attachment_count($defaults){ $defaults['wps_post_attachments'] = __('Attached'); return $defaults; } function posts_custom_columns_attachment_count($column_name, $id){ if($column_name === 'wps_post_attachments'){ $attachments = get_children(array('post_parent'=>$id)); $count = count($attachments); if($count !=0){echo $count;} } }

فشرده سازی اتوماتیک تصاویر JPG

چنانچه برای بهینه سازی تصاویر خود از افزونه استفاده میکنید بهتر است بدانید با کمک قطعه کد زیر نیز میتوانید این کار را انجام دهید:

add_filter( 'jpeg_quality', 'smashing_jpeg_quality' );
function smashing_jpeg_quality() {
return 100;
}

استفاده از تصاویر ویژه

برای اینکه فرد موفقی باشید باید نوشته های منحصر به فردی را ایجاد کنید همچنین در کنار آن نوشته ها میتوانید ازتصاویر ویژه نیز استفاده کنید:

add_action('save_post', 'wpds_check_thumbnail'); add_action('admin_notices', 'wpds_thumbnail_error'); function wpds_check_thumbnail($post_id) { // change to any custom post type if(get_post_type($post_id) != 'post') return; if ( !has_post_thumbnail( $post_id ) ) { // set a transient to show the users an admin message set_transient( "has_post_thumbnail", "no" ); // unhook this function so it doesn't loop infinitely remove_action('save_post', 'wpds_check_thumbnail'); // update the post set it to draft wp_update_post(array('ID' => $post_id, 'post_status' => 'draft')); add_action('save_post', 'wpds_check_thumbnail'); } else { delete_transient( "has_post_thumbnail" ); } } function wpds_thumbnail_error() { // check if the transient is set, and display the error message if ( get_transient( "has_post_thumbnail" ) == "no" ) { echo "<div id='message' class='error'><p><strong>You must select Featured Image. Your Post is saved but it can not be published.</strong></p></div>"; delete_transient( "has_post_thumbnail" ); } }

حذف یا پنهان کردن دسته ها در صفحه ی اصلی

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

function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5, -34' );
}
return $query;
}

add_filter( 'pre_get_posts', 'exclude_category_home' );

نمایش نتایج در موتور جستجوی سایت

چنانچه می خواهید تعداد نتایج جستجو را در سایت خود تغییر دهید از کد زیر استفاده کنید:

function limit_posts_per_page() { if ( is_category() ) return 2; else return 5; // default: 5 posts per page } add_filter('pre_option_posts_per_page', 'limit_posts_per_page');

با کمک قطعه کد در وردپرس که در بالا تعدادی از آنها را مشخص کردیم دقیقا کاری را انجام می دهید که افزونه ها انجام می دهند. فقط دقت کنید قبل از قرار دادن این کدها حتما نسخه ی پشتیبان تهیه کنید!

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

 

آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

دیدگاهتان را بنویسید

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. 8 سال عضو همیار وردپرس

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

  2. 8 سال عضو همیار وردپرس

    سلام
    تازه کار هستم
    یه قالب ایجاد کردم با html , css
    تو قسمت هدر سایت یه شماره تماس گذاشتم
    حالا کاربر چطوری می تونه این شماره رو تغییر بده ؟
    کد php و لازم دارم
    با تشکر فراوان

  3. 11 سال عضو همیار وردپرس

    سلام و خسته نباشید. ممنون از مطلب مفیدتون

    متاسفانه کدها به صورت صحیح در این مطلب ازسال نشده اند، لطفا چک بفرمایید.

    با تشکر