رفتن به مطلب

ساخت باکس دانلود _مقدماتی


پست های پیشنهاد شده

با سلام خدمت دوستان عزیز

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

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

1-لینک دانلود

2-آیدی موضوع

3-دسته بندی

4-پسوند فایل

5-حجم فایل

6-تاریخ انتشار

7-تعداد بازدید پست

8- QR

9-شبکه های اجتماعی

10-سایز تصویر

و.....

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

وردپرس دارای 2 قابلیت هست که در این زمینه میتواند به ما کمک کند

1- زمینه دلخواه (Custom_Fields)

2- متا باکس (MetaBox)

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

شما یک کادر دارید که درونش از 2 مقدار لینک میخواهید استفاده کنید

دانلود قسمت اول

دانلود قسمت دوم

برای اینکار نیاز به html دارید مثل زیر :


<ul>
<li><a href="">Download Part 1</a><li>
<li><a href="">Download Part 2</li>
</ul>

سپس شما نیاز دارید که اینها به وردپرس متصل کنید تا از حالت Static به Dynamic تبدیل شوند

در اینجا از Custom Fields استفاده میکنیم

ابتدا از لینک زیر درباره get_post_meta مقداری مطالعه کنید

https://codex.wordpress.org/Custom_Fields

سپس میاییم با php یک متغیر تعریف میکنیم به اسم link


<?php $link ?>

در قسمت دوم مقدار link برابر get_post_meta دهید


<?php $link = get_post_meta($post_id, $key, $single);?>

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

که میشه :


<?php $link = get_post_meta($post->ID,'link',true)?>

حالا ما یک شرط هم قرار میدیم ککه در صورت خالی بودن و ... مشکلی پیش نیاد if


<?php $link = get_post_meta($post->ID,'link',true);if( $link!=null ){?>

و در آخر میبندیم :


<?php }?>

حالا انصال به وردپرس :

هیچی فقط همون متغیر در محل مورد نظر چاپ میکنیم با echo


<?php echo $company; ?>

که میشه


<ul>
<?php $link = get_post_meta($post->ID,'link',true);if( $link!=null ){?>
<li><a href="<?php $link1 ;?>">Download Part 1</a><li>
<?php }?>
<?php $link2 = get_post_meta($post->ID,'link2',true);if( $link2!=null ){?>
<li><a href="<?php $link2 ;?>">Download Part 2</li>
<?php }?>
</ul>

البته یک مقداری تغییرات و... بهترین حالت ها میشه

من فقط با سرعت مثال زدم

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

زیبایی هم با خودتان و توضیح کامل تر هم قرار داده خواهد شد

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

اما میخواهیم پیشرفته تر کنیم

برای مثال من از باکس زیر استفاده میکنم با این استایل :

xa87jmwsgzcm00s1xglf.png

Example :

http://jsbin.com/pemafehico/



<html>
<head>
<title>Example Box Download</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
#main{
box-shadow: 0px 0px 10px 5px #888888;
border: 1px solid #c2c2c2;
text-align: right;
width: 400px;
float: right;
}
.b1{background: rgb(234, 234, 234);border-bottom:1px solid #c2c2c2;}
.b2{border-bottom:1px solid #c2c2c2;}
</style>
</head>
<body>

<div id="main">


<div class="b1">
<div>کد طرح : </div>
</div>
<div class="b2">
<div>لينک دانلود : </div>
</div>
<div class="b1">
<div>دسته بندي : </div>
</div>
<div class="b2">
<div>فرمت فايل : </div>
</div>
<div class="b1">
<div>تاريخ انتشار : </div>
</div>
<div class="b2">
<div>
<div>حجم فايل: </div>
</div>
</div>
<div class="b1">
<div>تعداد بازديد : </div>
</div>

</div>

</body>
</html>

حالا میریم سراغ تکمیل کردن این کادر ها :

در قسمت اول ما میخواهیم برای هر موضوع یک ID مشخص قرار بدیم

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


<?php the_ID(); ?>

و در محل نمایش قرار میدهیم

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


<?php $link = get_post_meta($post->ID,'link',true) ;if ($link !=null) {?>
<div>Link DOwnload: <?php echo $link() ;?></div>
<?php }?>

حالا میریم سراغ نمایش دسته بندی با استفاده از :


<?php the_category();?>

شاید دسنه بندی ها زیاد باشد و ما نیازی به نمایش همه آن نداشته باشیم

میتونیم از کد زیر استفاده کنیم :


<?php $category = get_the_category(); if ($category) { echo '<a href="' . get_category_link( $category[0]->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category[0]->name ) . '" ' . '>' . $category[0]->name.'</a> ';} ?>

حالا میخواهیم ببینیم که فایل ما دارای چه پسوندی میباشد : (مثلا ZIP , RAR , PNG &....)


<?php print_r(pathinfo($link,PATHINFO_EXTENSION));?>

ما قبلا متغیر $link با استفاده از زمینه دلخواه پرکردیم و درونش لینک دانلود فایل است

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

حالا نوبت به تایین مقدار حجم میرسد :


<?php
$file = $link;
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
$file_size =$contentLength = (int)$matches[1] .'KB';}
echo size_format($file_size, 2);
?>

چون از Curl استفاده شده هنگام لود صفحه مقداری طول میکشد پس دقت کنید

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

از پلاگین استفاده کنید :



برای تعیین زمان هم :


<?php the_time('Y/M/d') ?>

و....

پس به عبارت دیگه کدها میشه :


<html>
<head>
<title>Example Box Download</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
#main{
box-shadow: 0px 0px 10px 5px #888888;
border: 1px solid #c2c2c2;
text-align: right;
width: 400px;
float: right;
}
.b1{background: rgb(234, 234, 234);border-bottom:1px solid #c2c2c2;}
.b2{border-bottom:1px solid #c2c2c2;}
</style>
</head>
<body>

<div id="main">


<div class="b1">
<div>کد طرح : <?php the_ID(); ?></div>
<?php $link = get_post_meta($post->ID,'link',true) ;if ($link !=null) {?>
<div>کد طرح : <?php echo $link() ;?></div>
<?php }?>
</div>
<div class="b2">
<div>دسته بندي : <?php the_category();?></div>
</div>
<div class="b1">
<div>فرمت فايل : <?php print_r(pathinfo($link,PATHINFO_EXTENSION));?></div>
<div>تاريخ انتشار : <?php the_time('Y/M/d') ?></div>
</div>
<div class="b2">
<div>
<?php
$file = $link;
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
$file_size =$contentLength = (int)$matches[1] .'KB';}
echo "حجم فايل :"; .size_format($file_size, 2);
?>
</div>
</div>
<div class="b1">
<div>تعداد بازديد : <?php if(function_exists('the_views')) { the_views(); }
else
echo "<a href='https://wordpress.org/plugins/wp-postviews/install'>Please Install Plugin wp-postviews</a> "?></div>

</div>

</div>

</body>
</html>

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

فقط یک نمونه ساده و کاربردی بوده است

موفق باشید

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...