کدهای مفید برای ایجاد تغییرات در وردپرس


کدهای مفید برای ایجاد تغییرات در وردپرس

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

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

کدها باید در فایل functions.Php در جهت ایجاد تغییرات قرار گیرد چرا که این فایل از مهم ترین فایل قالب شماست و باید بسیار مواظب آن بود برای جلوگیری و مقابله از تخریب این فایل چند راه وجود دارد: افزونه سفارشی با استفاده از قطعه کدهای افزونه های پشتیبانی در وردپرس، استفاده از افزونه های مخصوص به قالب، استفاده از 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');

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

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

<pre class="brush: php; title: ; notranslate" title="">add_filter( 'widget_text', 'do_shortcode' );

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

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

<pre class="brush: php; title: ; notranslate" title="">function wps_registration_redirect(){
return home_url( '/finished/' );
}
add_filter( 'registration_redirect', 'wps_registration_redirect' );</pre>

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

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

<pre class="brush: php; title: ; notranslate" title="">if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);</pre>

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

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

<pre class="brush: php; title: ; notranslate" title="">function year_shortcode() {
$year = date('Y');
return $year;
}
add_shortcode('year', 'year_shortcode');</pre>

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

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

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');
?>

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

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

<pre class="brush: php; title: ; notranslate" title="">function remove_comment_fields($fields) {
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');</pre>

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

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

<pre class="brush: php; title: ; notranslate" title="">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'=&gt;$id));
$count = count($attachments);
if($count !=0){echo $count;}
}
}</pre>

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

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

<pre class="brush: php; title: ; notranslate" title="">add_filter( 'jpeg_quality', 'smashing_jpeg_quality' );
function smashing_jpeg_quality() {
return 100;
}</pre>

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

بهتر است زمانی که نوشته ای منحصر به فرد ایجاد می کنید از تصاویر ویژه بهره بگیرید

<span class="pln">add_action</span><span class="pun">(</span><span class="str">'save_post'</span><span class="pun">,</span> <span class="str">'wpds_check_thumbnail'</span><span class="pun">);</span><span class="pln">
add_action</span><span class="pun">(</span><span class="str">'admin_notices'</span><span class="pun">,</span> <span class="str">'wpds_thumbnail_error'</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">function</span><span class="pln"> wpds_check_thumbnail</span><span class="pun">(</span><span class="pln">$post_id</span><span class="pun">)</span> <span class="pun">{</span><span class="pln">
</span><span class="com">// change to any custom post type</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">get_post_type</span><span class="pun">(</span><span class="pln">$post_id</span><span class="pun">)</span> <span class="pun">!=</span> <span class="str">'post'</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">return</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">if</span> <span class="pun">(</span> <span class="pun">!</span><span class="pln">has_post_thumbnail</span><span class="pun">(</span><span class="pln"> $post_id </span><span class="pun">)</span> <span class="pun">)</span> <span class="pun">{</span><span class="pln">
</span><span class="com">// set a transient to show the users an admin message</span><span class="pln">
set_transient</span><span class="pun">(</span> <span class="str">"has_post_thumbnail"</span><span class="pun">,</span> <span class="str">"no"</span> <span class="pun">);</span><span class="pln">
</span><span class="com">// unhook this function so it doesn't loop infinitely</span><span class="pln">
remove_action</span><span class="pun">(</span><span class="str">'save_post'</span><span class="pun">,</span> <span class="str">'wpds_check_thumbnail'</span><span class="pun">);</span><span class="pln">
</span><span class="com">// update the post set it to draft</span><span class="pln">
wp_update_post</span><span class="pun">(</span><span class="pln">array</span><span class="pun">(</span><span class="str">'ID'</span> <span class="pun">=></span><span class="pln"> $post_id</span><span class="pun">,</span> <span class="str">'post_status'</span> <span class="pun">=></span> <span class="str">'draft'</span><span class="pun">));</span><span class="pln">
add_action</span><span class="pun">(</span><span class="str">'save_post'</span><span class="pun">,</span> <span class="str">'wpds_check_thumbnail'</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span> <span class="kwd">else</span> <span class="pun">{</span><span class="pln">
delete_transient</span><span class="pun">(</span> <span class="str">"has_post_thumbnail"</span> <span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">function</span><span class="pln"> wpds_thumbnail_error</span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="com">// check if the transient is set, and display the error message</span><span class="pln">
</span><span class="kwd">if</span> <span class="pun">(</span><span class="pln"> get_transient</span><span class="pun">(</span> <span class="str">"has_post_thumbnail"</span> <span class="pun">)</span> <span class="pun">==</span> <span class="str">"no"</span> <span class="pun">)</span> <span class="pun">{</span><span class="pln">
echo </span><span class="str">"<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>"</span><span class="pun">;</span><span class="pln">
delete_transient</span><span class="pun">(</span> <span class="str">"has_post_thumbnail"</span> <span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span>

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

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

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

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

کد زیر برای نمایش نتایج موتور جستجو مناسب است:

<pre class="brush: php; title: ; notranslate" title="">function limit_posts_per_search_page() {
    if ( is_search() )
        set_query_var('posts_per_archive_page', 20); 
}
 
add_filter('pre_get_posts', 'limit_posts_per_search_page');</pre>

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

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

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

پارس وی دی اس