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

1wp.ir

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

امروز : سه شنبه ۲۰ آذر ۱۳۹۷

به وب سایت یک وی پی خوش آمدید

همین حالا فروشگاه خود را بر پا کنید

تست خرید از فروشگاه یک وی پی

۱۰ مورد سفارشی سازی ساده و ضروری وردپرس

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

 

۱- اضافه کردن قابلیت تعریف تصاویر شاخص یا بند انگشتی در هنگام ارسال پست :

یکی از مهم ترین و مفید ترین امکاناتی که در نسخه های جدید وردپرس (بعد از نسخه ۴٫۷ ) حذف شده است امکان تعریف تصویر شاخص یا همون thumbnails picture هست. اینکه چرا در هنگام پست زدن، کادر تصویر شاخص نشون داده نمیشه و در نسخه های جدید وردپرس حدف شده برای خودم هم جای سوال هست اما با اضافه کردن یک خط کد دوباره به جای خودش در صفحه ارسال پست بر می گرده :

add_theme_support('post-thumbnails');

همینطور کد زیر رو برای نمایش پیوندک یا همون پیوند کوتاه مربوط به هر پست، برای مشاهده آی دی یک پست و یا استفاده از پیوند کوتاه مربوط به هر پست به فایل فانکشن پوسته اضاف می کنیم :

add_filter('get_shortlink',function($shortlink){return $shortlink;});

 

۲- پیام خوشامد گویی برای کاربران وردپرس :

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

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

welcome

welcome

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

<?php
if ( !is_user_logged_in() ) { ?>
<div id="ilog">
<a href="<?php echo $blogurl; ?>/wp-login.php" class="ilogsec">ورود</a>
<a href="<?php echo $blogurl; ?>/wp-login.php?action=register" class="ilogsec ireg">عضویت</a>
</div><!-- ilog -->
<?php
} else {
?>
<div id="weluser">
<?php $current_user = wp_get_current_user();$fname=$current_user->user_firstname; echo $fname; ?> عزیز؛ به دژگرد خوش آمدید
</div><!--  end weluser -->
<?php
}
?>

 

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

<?php
    $current_user = wp_get_current_user();
    /**
     * @example Safe usage: $current_user = wp_get_current_user();
     * if ( !($current_user instanceof WP_User) )
     *     return;
     */
    echo 'Username: ' . $current_user->user_login . '<br />';
    echo 'User email: ' . $current_user->user_email . '<br />';
    echo 'User first name: ' . $current_user->user_firstname . '<br />';
    echo 'User last name: ' . $current_user->user_lastname . '<br />';
    echo 'User display name: ' . $current_user->display_name . '<br />';
    echo 'User ID: ' . $current_user->ID . '<br />';
?>

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

 

 

۳- سفارشی سازی صفحه ورود وردپرس :

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

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

<?php
function my_login_logo() { ?>
<style type="text/css">
.login h1 a{
background: url(<?php echo get_stylesheet_directory_uri(); ?>/img/login-logo.png) center no-repeat!important;
padding-bottom: 30px;
width:310px !important;
height:310px !important;
display:block;
        }
#login{margin:1% auto ;padding:10px  0 0}


    </style>
<?php }
add_action( 'login_enqueue_scripts', 'my_login_logo' );
?>

 

در این مورد سایز لوگو ۳۱۰ در ۳۱۰ پیکسل هست که می تونید بر اساس سایز لوگوی خودتون اصلاح کنید.

در حالت عادی لینک لوگوی وردپرس، سایت wp-persian می باشد که برای تغییر به آدرس وب سایت باید کد زیر در فایل functions.php وارد شود.

function my_login_logo_url() {
    return home_url();
}
add_filter( 'login_headerurl', 'my_login_logo_url' );

در صورتی که به کدهای css بیشتری برای سفارشی سازی صفحه ورود وردپرس نیاز باشد میشه از فایل css مجزار برای این کار استفاده کرد و آدرس فایل css رو در فایل functions.php به اینصورت وارد کرد.

function my_login_stylesheet() {
    wp_enqueue_style( 'custom-login', get_template_directory_uri() . '/style-login.css' );
    wp_enqueue_script( 'custom-login', get_template_directory_uri() . '/style-login.js' );
}
add_action( 'login_enqueue_scripts', 'my_login_stylesheet' );

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

body.login {}
body.login div#login {}
body.login div#login h1 {}
body.login div#login h1 a {}
body.login div#login form#loginform {}
body.login div#login form#loginform p {}
body.login div#login form#loginform p label {}
body.login div#login form#loginform input {}
body.login div#login form#loginform input#user_login {}
body.login div#login form#loginform input#user_pass {}
body.login div#login form#loginform p.forgetmenot {}
body.login div#login form#loginform p.forgetmenot input#rememberme {}
body.login div#login form#loginform p.submit {}
body.login div#login form#loginform p.submit input#wp-submit {}
body.login div#login p#nav {}
body.login div#login p#nav a {}
body.login div#login p#backtoblog {}
body.login div#login p#backtoblog a {}

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

 

۴- حذف پیام های بروزرسانی وردپرس :

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

<?php
function remove_core_updates(){
global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
}
add_filter('pre_site_transient_update_core','remove_core_updates');
add_filter('pre_site_transient_update_plugins','remove_core_updates');
add_filter('pre_site_transient_update_themes','remove_core_updates');
?>

 

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

 

۵- ساخت صفحه لاگین اختصاصی برای وب سایت :

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

صفحه ورود

صفحه ورود

پس صفحه اختصاصی لاگین وردپرس خودمون رو می سازیم.

 <?php wp_login_form( $args ); ?>

پارامترهای تابع wp_login_form

$args = array(
	'echo'           => true,
	'remember'       => true,
	'redirect'       => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
	'form_id'        => 'loginform',
	'id_username'    => 'user_login',
	'id_password'    => 'user_pass',
	'id_remember'    => 'rememberme',
	'id_submit'      => 'wp-submit',
	'label_username' => __( 'Username' ),
	'label_password' => __( 'Password' ),
	'label_remember' => __( 'Remember Me' ),
	'label_log_in'   => __( 'Log In' ),
	'value_username' => '',
	'value_remember' => false
);

 

و در آخر بررسی این موضوع که کاربر وارد سایت شده است و یا نه ؟

<?php
if ( ! is_user_logged_in() ) { // Display WordPress login form:
    $args = array(
        'redirect' => admin_url(), 
        'form_id' => 'loginform-custom',
        'label_username' => __( 'Username custom text' ),
        'label_password' => __( 'Password custom text' ),
        'label_remember' => __( 'Remember Me custom text' ),
        'label_log_in' => __( 'Log In custom text' ),
        'remember' => true
    );
    wp_login_form( $args );
} else { // If logged in:
    wp_loginout( home_url() ); // Display "Log Out" link.
    echo " | ";
    wp_register('', ''); // Display "Site Admin" link.
}
?>

۶- تغییر آدرس پیش فرض لاگین وردپرس :

به صورت پیش فرض لینک ورود به وردپرس به صورت wp-login.php می باشد و همین ظور برای ثبت نام wp-login.php?action=register می باشد. اما اگر قصد داشته باشیم صفحه اختصاصی و سفارشی برای وردپرس بسازیمبهتر است صفحه جدید در پوسته خود ایجادکنیم وصفحات لاگین و ثبت نام را به آنها ردایرکت کنیم.در اینصورت بازدیدکنندگانی که قصد ثبت نام و یا ورود به وب سایت را دارند، به صفحات جدیدی که می سازیم هدایت می شوند.

 

// Redirect Registration Page
function onewp_registration_page_redirect()
{global $pagenow;
if (  ( strtolower( $_GET['action']) == 'register' ) ) {wp_redirect( home_url('/reg'));	}}
add_filter( 'init', 'onewp_registration_page_redirect' );


// Redirect login Page
function onewp_login_page_redirect()
{global $pagenow;
if ( ( strtolower($pagenow) == 'wp-login.php') ) {wp_redirect( home_url('/login_page'));	}}
add_filter( 'init', 'onewp_login_page_redirect' );

 

۷- اضافه کردن فیلد دلخواه درهنگام ثبت نام :

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

login

login

add_action( 'register_form', 'onewp_feild' );
 
if ( ! function_exists( 'onewp_feild' ) ) {
 function onewp_feild() { 
 
 ?>
 <p>
 <label>My Custom Field <span class="required">*</span></label><br />
 <input type="text" name="my_custom_field" id="my_custom_field" class="input" />
 </p>
 
 <?php 
 }
}

add_action( 'register_post', 'onewp_field_validate', 10, 3 );
 
if ( ! function_exists( 'onewp_field_validate' ) ) {
 function onewp_field_validate( $sanitized_user_login, $user_email, $errors) {
 
 
 //check value for empty
 if ( (!isset( $_POST['my_custom_field'] )) ||  (trim($_POST['my_custom_field']) == '') ) {
 return $errors->add( 'my_custom_field', '<strong>ERROR</strong>: Please enter for My Custom Field'  );
 }
 
 // get value
 if ( isset($_POST['my_custom_field']) && ($_POST['my_custom_field'] != '') ) {
 $my_custom_field_value = trim($_POST['my_custom_field']);
 }
 
 }
}

 

۸- نحوه نمایش و قالب اختصاصی برای پست ها بر اساس موضوع و یا نوع پست:

در حالت عادی برای نمایش تمام پست ها از فایل single.php استفاده می شود و برای نمایش لیست مطالب یک نوع خاص از پست ها مثلا کتاب، محصول و یا هر چیز دیگر از فایل category.php و در نبود آن از فایل archive.php و در صورت نبود هر کدام از اینها از خود فایل index.php برای نمایش پست هایی با نوع خاص یا custom post type استفاده میشه.

archive-{post_type}.php

single-{post_type}.php

گاهی برای نمایش بهتر پست هایی با نوع خاص، فایل single جدیدی تعریف بشه، برای تعریف و نمایش یک نوع خاص post_type یک فایل php با نام single-posttype.php می سازیم مثلا برای نمایش بهتر پست هایی که دارای post type با نوع book هستند باید فایلی با نام single-book.php بسازیم و کلاس ها و آی دی های مخصوص نمایش المنت های پست کتاب را تعریف و نمایش دهیم.

custom post types

custom post types

 

۹- اضافه کردن لینک ویرایش پست بررای سترسی سریع تر :

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

edit post in wordpress

edit post in wordpress

 

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

لینکش به اینصورت خواهد بود

<a class="editpost" href="/wp-admin/post.php?post=
<?php
$thePostID=$post->ID;
echo $thePostID; ?>
&action=edit" target="_blank" >Edit</a>

برای نمایش بهتر و استایل دهی کلاس editpost تعریف شده که در Style.css وردپرس به هر صورت که می‌خواهید لینک نمایش داده بشه تعریف خواهد شد

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

 

<?php if (current_user_can( 'edit_posts' ))  { ?>

<a class="editpost" href="/wp-admin/post.php?post=
<?php
$thePostID=$post->ID;
echo $thePostID; ?>
&action=edit" target="_blank" >Edit</a>
<?php } ?>

 

۱۰ – چنانچه شما هم موردی از شخصی سازی و سفارشی سازی برای وردپرس و وب سایت خود استفاده می کنید، می توانید با ما و بازدیدکنندگان یک وی پی در میان بگذارید.

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