۰۸
دی ۹۳
سلام دوستان
شاید پرینت صفحه برای سایتهای شخصی زیاد کاربردی نباشه اما حتما برای سایتهای خبری این مورد بسیار کاربردی و مهم هست.
در این آموزش با شما همراه خواهیم شد تا صفحه پرینت نوشته رو برای سیستم مدیریت محتوای وردپرس طراحی کنیم البته بدون استفاده از افزونه :)
معمولا در سایتها کلیدی برای پرینت قرار داره که مطلب مد نظر را بدون گرافیک ها و فهرستها و منو ها و آماده برای پرینت باز می کنهمی خواهیم چنین صفحه ای را به صورت خودکار برای مطال سایت بسازیم (بدون افزونه)
اول از همه یک ویرایشگر متنی (مثل notepad) را باز کنید و کدهای زیر را توش بگذارید :
<?phpفایل را با پسوند php و نامی مثل print.php در پوشه قالب قرار بدید
/*
template name: Print
*/
if(isset($_GET['id'])) {
$id = $_GET['id'];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title><?php bloginfo('name');?></title>
<link type="text/css" rel="stylesheet" href="<?php bloginfo('template_directory');?>/print.css">
</head>
<body>
<div class="page">
<h1><?php bloginfo('name');?></h1>
<p class="data"><?php bloginfo('description');?></p>
<div class="post">
<?php
$p = "p=".$id;
$the_query = new WP_Query( $p );;
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();?>
<h2><?php the_title();?></h2>
<div class="entry"> <?php the_content();?>
</div>
<div class="data text-left">ثبت شده در سایت <a href="<?php bloginfo('url');?>" ><?php bloginfo('name');?></a> طی شماره <?php the_ID();?> توسط <?php the_author();?> و در روز <?php the_date('l j F Y');?> ساعت <?php the_time('H:i:s');?>
<hr>
</div>
<div class="data text-left" dir="ltr"> <?php echo date('Y');?> copyright.
</div>
<?php
}
}
wp_reset_postdata(); ?>
</div>
</div>
<script>
$(document).ready(function() {
print();
});
</script>
</body>
</html>
برای استایل دهی هم فایلی به نام print.css باید ایجاد کنید و در پوشه قالب قرار بدید شما می تونید از استایل دلخواه خودتون استفاده کنید ولی من یک استایل ساده برای چاپ آماده کردم که این کدهاشه:
html {من مجموعه دو فایل مورد نیاز و دو فونتی که در این استایل دهی ازش استفاده کردم در یک فایل زیپ شده آپلود کردم که می تونید از اینجا دریافتش کنید:
direction:rtl;
}
.page {
display:block;
background-color:#FFF;
color:#000;
padding:1.5cm;
width:18cm;
size:A4;
margin:auto;
border:1px #eee dashed;
}
a {
color:#3366CC;
text-decoration:none;
}
.post {
display:block;
padding:15px;
text-align:justify;
}
.Arial {
font-family:Arial, Helvetica, sans-serif !important;
}
.Tahoma,.data {
font-family:Tahoma !important;
font-weight:100;
font-size:13px;
color:#555;
}
.text-left {
text-align:left;
}
.Verdana {
font-family:Verdana, Geneva, Tahoma, sans-serif !important;
color:#000 !important;
}
.BTitrBold,
h1, h2, h3, h4, h5 {
font-family: 'BTitrBold', Arial !important;
font-weight:normal;
color:#666;
}
.BYekan,.post p {
font-family: 'BYekan', Tahoma !important;
font-weight:normal !important;
color:#000;
font-size:16pt;
}
pre {
direction:ltr !important;
text-align:left !important;
font-family:"Courier New", Courier, monospace !important;
background:#eee;
word-break:normal;
overflow:hidden;
text-wrap:normal;
}
@font-face {
font-family: 'BTitrBold';
src:url('fonts/BTitrBold.eot');
src:url('fonts/BTitrBold.ttf') format('truetype'),
url('fonts/BTitrBold.woff') format('woff');}
@font-face {
font-family: 'BYekan';
src:url('fonts/BYekan.eot');
src:url('fonts/BYekan.ttf') format('truetype'),
url('fonts/BYekan.woff') format('woff');}

و بعد از آن زیپ کافیه پوشه print را به قالبتون منتقل کنید هیچ نیازی به دستکاری کدها و فایلهاش ندارید.
حالا نوبت انتشار یک برگه با قالب print است وارد پیشخوان بشید و از طریق برگه ها افزودن برگه یک برگه بدون محتوی و با قالب print منتشر کنید بعد از انتشار روی دریافت پیوندک کلیک کنید و نشانی پیوند کوتاه مطلب را کپی نمایید.
آخرین مرحله کار قرار دادن لینک صفحه ی ایجاد شده در داخل فایل single.php و محل مناسبه.
می تونید بجای متن آیبکون پرینتر بگذارید یا به صورت دلخواه متنش رو تغییر بدید.
اما خود لینک را دستکاری نکنید.
پیوندی را که کپی نموده بودید بجای:
%LINK%در کد زیر بگذارید و کد را به محل مناسب در فایل single.php منتقل کنید:
<a href="%LINK%&id=<?php the_id();?>">print</a>دقت کنید اگر:
&id=<?php the_id();?>در کد تغییری کنه لینکتون درست عمل نمیکنه و نسخه آماده چاپ مطلب باز نمیشه.
بعد از گذاشتن صحیح پیوند در محل صحیح وقتی روش کلیک کنید صفحه ای حاوی نام سایت و نام مطلب و متن مطلب و نام نویسنده و تاریخ را در صفحه ای سفید و آماده پرینت بر روی رابط پرینت مرورگرتون باز می کنه.
آموزش از ایمان فخار در انجمن پشتیبانی وردپرس پارسی
++++++++++++++++++++++++++++++++++++++
1399/09/10 - به روز رسانی:
در کدی که در صفحه single.php قرار میگیره باید به جای & این علامت قرار بگیره: ?
یعنی کد زیر:
<a href="%LINK%&id=<?php the_id();?>">print</a>تبدیل میشه به این کد:
<a href="%LINK%?id=<?php the_id();?>">print</a>نکته دیگه ای که میخوام توی این به روز رسانی بگم اینه که اگر شما از تک more توی پست هاتون استفاده کنید، با کدی که توی صفحه پرینت گذاشتید همه پست نمایش داده نمیشه. فقط تا قبل از این تک روی خروجی میره. برای حل این مشکل توی فایل print.php بعد از این خط:
$the_query->the_post();?>
این کد رو بذارید:
<?php global $more; $more = 1; ?>
کد بالا باعث میشه تا به جای خلاصه مطلب یا به فارسی «بیشتر بخوانید...»، همه نوشته بره روی خروجی. اگر اون یک رو به صفر تغییر بدید برعکس این حالت رخ میده :)
موفق باشید
++++++++++++++++++++++++++++++++++++++
کامنت های شما موجب دلگرمی ماست :)