وبلاگ سجاد نجفی

تجربه های وبگردی من

وبلاگ سجاد نجفی

تجربه های وبگردی من

وبلاگ سجاد نجفی

با خودم گفتم من که هر چند وقت یه بار دنبال مطلبی در اینترنت‌ام تا کار خودمو راه بندازم، خب وقتی کارم راه افتاد و اون مطلب رو در وب پیدا کردم، در یک وبلاگ انتشار بدم تا هم خودم اون مطالب رو داشته باشم و هم به کسایی که دنبال همون چیزایی‌اند که من دنبالشون بودم{!!!} کمکی کرده باشم!

پیام های کوتاه
۰۸
دی ۹۳

سلام دوستان

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

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

معمولا در سایتها کلیدی برای پرینت قرار داره که مطلب مد نظر را بدون گرافیک ها و فهرستها و منو ها و آماده برای پرینت باز می کنه
می خواهیم چنین صفحه ای را به صورت خودکار برای مطال سایت بسازیم (بدون افزونه)
اول از همه یک ویرایشگر متنی (مثل notepad) را باز کنید و کدهای زیر را توش بگذارید :
<?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>
فایل را با پسوند php  و نامی مثل print.php در پوشه قالب قرار بدید
برای استایل دهی هم فایلی به نام 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; ?>
کد بالا باعث میشه تا به جای خلاصه مطلب یا به فارسی «بیشتر بخوانید...»، همه نوشته بره روی خروجی. اگر اون یک رو به صفر تغییر بدید برعکس این حالت رخ میده :)
موفق باشید 
++++++++++++++++++++++++++++++++++++++


کامنت های شما موجب دلگرمی ماست :) 

لطفا نظرتون رو بگین 

نظرات  (۱)

واقعا خیلی دنبالش بودم مرسی 

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی