گاهی اوقات به این فکر میکنیم که چگونه میتوان کمی متفاوت تر عمل کرد و وردپرس سایت خود را شخصی سازی کرد؟ راه های زیادی برای متفاوت بودن وجود دارد که با کمک افزونه ها یا قطعه کد در وردپرس میتوان به آن رسید. در حال حاضر یافتن افزونه ها بسیار راحت تر از قطعه کد ها میباشد زیرا بر تعداد آنها روز به روز افزوده میشود و مورد دیگر اینکه استفاده از قطعه کدها نیازمند دقت بیشتری است.
راه های زیادی برای استفاده از قطعه کدها وجود دارد که اکثر آنها باید برای ایجاد تغییر در فایل function.php قرار بگیرند. زیرا این فایل در قالب شما بسیار کاربردی و خاص است و باید بسیار مواظب باشید تا به مشکل نخورد و تخریب نشود. برای مقابله با تخریب این فایل چند راه پیش رو دارید:
استفاده از افزونه ی رایگان 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 ". "; } ?>
چنانچه میخواهید شماره نسخه ی وردپرس خود را پنهان کنید از کد زیر استفاده نمایید:
&lt;?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'); ?&gt;
از این رو که اسپمرها به سمت دیدگاه ها می آیند و مشکلات زیادی به وجود می آورند بهتر است فیلد آدرس را در این بخش حذف کنید:
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;} } }
چنانچه برای بهینه سازی تصاویر خود از افزونه استفاده میکنید بهتر است بدانید با کمک قطعه کد زیر نیز میتوانید این کار را انجام دهید:
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');
با کمک قطعه کد در وردپرس که در بالا تعدادی از آنها را مشخص کردیم دقیقا کاری را انجام می دهید که افزونه ها انجام می دهند. فقط دقت کنید قبل از قرار دادن این کدها حتما نسخه ی پشتیبان تهیه کنید!
همیار وردپرس...برچسب : نویسنده : جمشید رضایی بازدید : 237