• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

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

دریافت اطلاعات یک مطلب در یک صفحه دیگر

16 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

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

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

این تاپیک، ادامه ای هست بر تاپیک :: ایجاد فریم در سایت خبری

ویرایش شده در توسط edenarezo
1

به اشتراک گذاری این پست


لینک به پست

1. صفحه ای با کدهایی شبیه به

<?php

/*

Template Name: news frame Head

*/

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">

<head>

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<title> head</title>

<base target="_top" />

<!-- استایل -->

<link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/style.css" type="text/css" />

<?php wp_head();?>

</head>

<body>

<div class="nav">

<?php if ( !dynamic_sidebar( 'newsframe') ) : ?>

<div class="menu">

<h3>جدیدترین مطالب </h3>

<ul>

<?php

$args = array( 'numberposts' => '5' );

$recent_posts = wp_get_recent_posts( $args );

foreach( $recent_posts as $recent ){

echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . $recent["post_title"].'</a> </li> ';

}

?>

</ul>

</div>

<div class="menu">

<h3>دسته بندی مطالب</h3>

<ul>

<?php wp_list_categories('show_count=1&title_li='); ?>

</ul>

</div>

<?php endif; ?>

</div>

<?php wp_footer(); ?>

</body>

</html>

ایجاد می کنید و با نام دلخواه در پوشه قالب ذخیره می کنید

2. فایل functions.php قالب را باز کنید و این کدها را بهش اضافه کنید


if ( function_exists('register_sidebar') )
register_sidebar( array(
'name' => 'News Frame',
'id' => 'newsframe',
'before_widget' => '<div class="menu">',
'after_widget' => "</div>",
'before_title' => "<h3>",
'after_title' => "</h3>"
));

3. از طریق پیشخوان > برگه ها ایجاد برگه یک برگه با قالب News Frame Head منتشر کنید

4. آدرس صفحه ایجاد شده را در کدهای آموزش بجای آدرس صفحه head.htm می گذارید

5. به پیشخوان > نمایش > ابزارک ها رفته و ابزارک دلخواه را در ستون کناری news frame که به این بخش اضافه گردیده قرار دهید

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

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

3

به اشتراک گذاری این پست


لینک به پست

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

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

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

من قبل از هرچیز از وقتی که شما می زارید و به سوالات ما پاسخ می دید، واقعاً ممنونم.

0

به اشتراک گذاری این پست


لینک به پست

آموزش را خواندید ؟

ساختار فریم پیج اینجوری

یک صفحه هولدر که کار نگه داری فریم ها را می کنه

شامل حداقل دو فریم

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

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

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

شما چه اطلاعاتی را می خواهید در این صفحه نمایش دهید ؟

این صفحه عین تمام اجزای قالب شما قابلیت های لازم را داره به صفحه header.php برید و کدهای اون رو به صورت کامل به این برگه منتقل کنید یعنی از بعد از


<?php
/*
Template Name: news frame Head
*/
?>

را پاک کنید و کدهای header.php را بگذارید

فقط در صقفحه فریم هم در جایی که


<frameset rows="64,*">

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

2

به اشتراک گذاری این پست


لینک به پست

طبق آموزش شما جلو می ریم. من کارهایی که شما فرمودید رو انجام دادم. حالا با کلیک بروی یکی از لینک ها، صفحه news.php اجرا می شه. خب تا اینجا مطابق آموزش های شما بود. حالا میخوام title صفحه news.php رو از این عنوان تغییر بدیم. "نام سایت شما" . title این صفحه بشه، عنوان مطلبی که اون مقدار لینک رو داشته. به عنوان مثال من یک مطلب در سایتم ایجاد کردم، به نام "آموزش وردپرس با زبانی شیرین". داخل این مطلب یک لینک قرار می دم و آدرس سایت http://forum.wp-parsi.com می دم. حالا روی این لینک کلیک می کنم، صفحه news.php باز می شه. حالا عنوان این صفحه باید بشه : "آموزش وردپرس با زبانی شیرین"

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


<a href="<?php bloginfo('template_url'); ?>/news.php?u=<?php echo $link ?>" target="_blank" title="<?php the_title(); ?>">مشاهده خبر </a>

به نظر شما می شه، به جای فرستادن مقدار لینک، ما ID اون مطلب رو بفرستم و اون وقت در صفحه news.php اطلاعات رو بر اساس اون ID از دیتابیس واکشی کنیم؟

0

به اشتراک گذاری این پست


لینک به پست

ببینید منظورتون از کاربر همون نویسنده ی مطلبه؟

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

2

به اشتراک گذاری این پست


لینک به پست

ببینید منظورتون از کاربر همون نویسنده ی مطلبه؟

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

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

0

به اشتراک گذاری این پست


لینک به پست

مسئله شما مشاهده اطلاعات یک مطلبه یا نمایش سایت

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

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

و frame که چیزی که در آموزش گفته شد

واکشی اطلاعات از دیتابیس کار ساده ایه و همه جا شدنیه ولی در این مورد چه کار آیی می تونه داشته باشه؟

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

برای اینکار باید

کدهای صفحه news.php شبیه کدهای زیر بشند


<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 2</title>
</head>
<?php if(isset($_REQUEST['myLink'])) :?>
<?php $myLink = $_REQUEST['myLink'];?>
<frameset rows="200,*">
<frame name="header" noresize="noresize" scrolling="no" src="http://yourdomain.com/?p=101">
<frame name="main" src="<?php echo $myLink;?> ">
<noframes>
<body>
متن برای وقتیکه نمایشگر از فریم پشتیبانی نمی کنه
</body>
</noframes>
</frameset>
<?php else : ?>
<body>
کدهای دلخواه برای مواقعی که صفحه بدون لینک مبدا باز می شه
</body>
<?php endif;?>
</html>

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


<form action="<?php bloginfo('template_url'); ?>/news.php" method="post">
<input name="Submit1" type="submit" value="مشاهده خبر در سایت مرجع " /><input name="myLink" type="hidden" value="<?php echo $link ?>"/></form>

3

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

خب من کلن متوجه شدم که باید چکار کنم.

واکشی اطلاعات بر اساس ID هم برای همین بود.

0

به اشتراک گذاری این پست


لینک به پست

برای عنوان هم می شه یک فیلد hidden دیگه ساخت و ارسالش کرد

می شه هم news.php را به عنوان یک قالب ساخت (مثل صفحه head) و با استفقاده از انتشار برگه ها استخراجش کردولی در فرم ارسال هم باید action به آدرس جدید تغییر کنه در اینصورت می تونید تمام اطلاعات وردپرس را در اون بخونید ولی چون این برگه ذاتا توان نمایش چیزی جز لینک و تایتل رو نداره فکر نکنم لزومی داشته باشه

1

به اشتراک گذاری این پست


لینک به پست

من توی این صفحه news.php نمی تونم، این دستورات رو اجرا کنم و fatal error می ده. دستور get_post

اینبار اومدم از طریق همون فرم، ID اون مطلب رو ارسال کنم که در صفحه news.php اطلاعاتم رو واکشی کنم، ولی Call to undefined function get_post()

نمی دونم علتش چیه؟!

0

به اشتراک گذاری این پست


لینک به پست

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


ADDRESS/?u=LINK&t=TITLE

ADDRESS

LINK

TITLE

متغیر هایی هستند که تغییر می کنند

و برایب فراخوانی


<?php echo $_GET['u']; ?>

در php کوچکی و بزرگی حروف و تمامی علائم مهمند و نباید حذف شوند یا تغییر کنند

در ضمن برای اینکه در صفحه ارور نبینید حتما از


<?php if(isset($_GET['t'])) :?>
کدهای صفحه
<?php endif;?>

استفاده کنید

4

به اشتراک گذاری این پست


لینک به پست

سلام

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

یه چیزی شبیه این سایت:

khabardehi.com



0

به اشتراک گذاری این پست


لینک به پست

در حالت طبیعی پیوندتون به ادامه مطلب


<?php the_permalink() ?>

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


<?php bloginfo('template_url'); ?>/news.php?u=<?php $news_permalink = get_post_meta($post->ID, 'news_permalink', true); echo $news_permalink; ?>

3

به اشتراک گذاری این پست


لینک به پست

سلام دوستان ، راستش من این آموزش رو خوندم ولی دقیقا متوجه نشدن ...

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

این تابع رو در انتهای خبر قرار دادم :


منبع : <a href="<?php echo $syndication_permalink;?>"><?php echo $syndication_source; ?> </a><br />

یک صفحه به نام IFRAIM.php در قالب ایجاد و محتوایت را به این صورت قرار دادم :


<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>پايگاه فرهنگي و اطلاع رساني ذابين</title>
</head>
<?php if(isset($_GET['u'])) : ?>
<?php $url= $_GET['u'] ;?>
<frameset rows="64,*">
<frame name="header" noresize="noresize" scrolling="no" src="head.html">
<frame name="main" src="<?php echo $url;?>">
<noframes>
<body>
<p>This page uses frames, but your browser doesn't support them.</p>
</body>
</noframes>
</frameset>
<?php else : ?>
<body>
<script type="text/javascript">
<!--
window.location="http://www.zabbin.ir/ "
//-->
</script>
</body>
<?php endif;?>
</html>

حالا من این کد رو دقیقا کجا قرار بدم :


<?php if(get_post_custom_values('syndication_permalink ')) : ?>
<a href="<?php bloginfo('template_url'); ?>/IFRAIM.php?u=<?php $syndication_permalink
= get_post_meta($post->ID, 'syndication_permalink ', true); echo $syndication_permalink
; ?>">مشاهده خبر</a>
<?php endif;?>

یه سوال دیگه ؛ اگه ما این مراحل رو انجام بدیم بعد از کلیک روی تیتر خبر متن اصلی میاد یا اینکه داخل مطلب میره و از اونجا باید روی لینک "متن کامل خبر" کلیک کنیم تا متن اصلی باز بشه !؟

0

به اشتراک گذاری این پست


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

مثلا حلقه پست

یه سوال دیگه ؛ اگه ما این مراحل رو انجام بدیم بعد از کلیک روی تیتر خبر متن اصلی میاد یا اینکه داخل مطلب میره و از اونجا باید روی لینک "متن کامل خبر" کلیک کنیم تا متن اصلی باز بشه !؟

بستگی داره کجا استفاده کنید

اگر در حلقه اول استفاده کنید مستقیم نمایش داده میشه

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط محمد حمزه
      سلام دوستان خسته نباشید من می خوام صفحه ای داشته باشم که کلیه دسته بندی های سایتم رو توش بیاره و لینک بده به دسته بنده و آخرین مطلب از همون دسته بندی رو نمایش بده .
      اینم آدرسش : http://tabfile.ir
      که چیزی حدود 111 تا دسته بندی داره من می خوام بدون دردسر کل دسته بندی هام توی صفحه اول نشون داده بشه و اگه بشه یه جستجوی درون صفحه هم داشته باشه


       
    • توسط العبد
      با سلام
      سال نوتون مبارک.امیدوارم سال خوبی داشته باشین
      می خواستم از دوستان در مورد مشکلی که با ریدایرکت شدن صفحاتم دارم راهنمایی بخوام.به تازگی تعداد پست هام به اندازه ای شد که صفحه دوم ایجاد شد.اما وقتی میخوام برم به اون صفحه ریدایرکت میشم به صفحه اصلی سایت.متاسفانه با نصب افزونه pagenavi هم مشکل حل نشد.
      آدرس صفحه اصلی
      آدرس صفحه دوم
      ممنون میشم دوستان راهنمایی کنن
      با تشکر
    • توسط hesamkj
      سلام دوستان، من توی سایتم میخوام یه صفحه باشه که کلا دسته بندی هام تو اون نمایش داده بشه، ممنون میشم راهنماییم کنید.
    • توسط مجله آنلاین حقوق
      دوستان سلام
      من برای سایتم یه صفحه جدید درست کردم .(لینک صفحه).که همانطور که ملاحظه فرمودید چند تب که هر تب حاوی مطالب دسته ی بخصوص است.علی ایحال مشکلم این است که هنگام رفتن به تبهای مختلف، مطالب دسته دیر بارگذاری خواهند شد.ممنون میشوم که راهنمایی فرمایید.
      (استایل تبها را از این سایت دانلود کردم.)
      با احترام
    • توسط montazer
      سلام به همه دوستان
      من در یکی از سایت هام وقتی در انتهای سایت بر روی صفحه دوم و یا صفحه های دیگر کلیک می کنم. صفحه مرورگر به لینک پیج میره ، ولی دوباره مطالب صفحه اول رو نمایش میده.
      سایت رو ببینید خودتون بهتر متوجه میشید: http://hanifnia.ir


      http://hanifnia.ir

      چه کنم تا مشکل حل بشه؟