رفتن به مطلب

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


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

سلام دوستان

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

box.png.0e3b769e4842e725e72bf62e5dd340d0.png

https://bigsearch.ir/best-gaming-mouse/

از افزونه acf نمیخوام استفاده کنم

کد زمینه های دلخواه شامل:

1- متن

2- لینک

 

هم کد زمینه دلخواه لازمه هم قرار گرفتن اخر متن

میخوام تو فانکشن بزارم

لینک به ارسال

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

حالا میایم یه آرایه ای تعریف میکنیم مثلا به اسم all و اونو گلوبال قرارش میدیم، به شکل زیر:

global $all;
$all = array();

بعد این آرایه میتونه تا بینهایت متغیر های مختلف درش قرار بگیره، پس هر متغییری که میخوایم رو توش تعریف میکنیم و قسمت هاییش که میخوایم جای اون نوشته چی باشه رو هم مشخص میکنیم، برای مثال پایین من دقیقا همون چیزی که تو عکس گذاشتی رو میذارم:

$mouse = get_post_meta ($post->ID , 'پرفورش ترین موس های گیمینگ' , true);
if(isset($mouse) && !empty($mouse))
$all['m-m'] = array('پرفورش ترین موس های گیمینگ' , '<a href="'.$mouse.'">مشاهده محصولات</a>');

خوب حالا همونطور که تو قعطه کد بالا میبینی من اومدم متغییری به اسم mouse تعریف کردم و گذاشتمش تو حلقه که تو قطعه کد بعدی ای که میگم اگر اون متغییر رو با اسمی که براش انتخاب کردم تو ضمینه های دلخواه نوشتم و مقدار بهش دادم نمایش داده بشه، و اون قسمت هم که تو تگ <a> قرارش دادم برای زمانی هست که لینک رو قرار بدم.

حالا قسمت بعدی کد:

<?php
if(count($all) > 0 ):
?>

<div class="zamine-haye-delkhahe-foroosh">
			
			<?php foreach($all as $class => $info) : ?>
			
			<span class="<?php echo $class; ?>"><?php echo $info[0]; ?> : <?php echo $info[1]; ?></span>
			
			<?php endforeach; ?>
			
			</div>
		<?php endif; ?>

حالا تو این قسمت همونطور که مشاهده میکنید اومدم گفتم که اگر آرایه all$ مقدارش بیشتر از صفر بود یعنی اگر یکی هز متغیر ها هم پر بود اونو بیاد نمایش بده، حالا من اینجا مثلا اونو تو یه div به اسم zamine-haye-delkhahe-foroosh گذاشتم و اومدم اونو نشونش بدم که میگم مقداری که قرار میدم داخل قسمت مدار ضمینه های دلخواه اونو بذاره تو تگ a  و همونطور که بالا نشون دادیم نوشته 'پرفورش ترین موس های گیمینگ' هم یبه عنوان متن قرار میگیره.

 

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

بعد حالا میتونی هزارتا دیگه متغیر به همین شکل بسازی و اسمش هرچی میخوای باشه و لینکشم هرچی میخوای بذاری.

 

اما کلا استفاده از ضمینه های دلخواه برای این موضوع کار قدیمی ای هست، مثل این میمونه که سایت های دانلود فیلم برای مثال بیان از همچین چیزی برای لینک دانلود های فیلمشون استفاده کنن خوب مسلما کاره اشتباهیه چون یه فیلم مثلا هزارتا کیفیت داره مثل 720 - 1080 یا خیلی چیزای دیگه، بعد هرکدومشونم ریزر های مختلف دارن مثلا Ganool 720 یا چیزه دیگه، بعد اگر بخوان اینکارو بکنن باید تو اون آرایه برن همه ی اینارو اضافه کنن و هربار ازش استفاده کنن، بعد حالا اگه برسن به سریال ها باید اسم تک تک قسمت ها: قسمت یک فصل یک - قسمت دوم فصل یک و..... همینجر الا آخر رو اضافه کنن که این که کار منسوخ شدست و ازش استفاده نمیشه دیگه.

 

اما راه دیگه ای برای استفاده از ضمینه های دلخواه وجود نداره، همونی هست که بهت گفتم.

امیدوارم موفق باشی.

  • تشکر 1
لینک به ارسال

تشکر دوست عزیز

 

تو قسمتی از توضیحات گفتید دیگه استفاده از زمینه دلخواه منسوخ شده، چه روش بهتری برای اون هست؟

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

برای اون چیکار باید کرد؟

و مشکلی که هست یکسری افزونه مثل امتیازدهی و … بطور اتوماتیک خودشون قرار میدن اخر مطلب و‌ما میخوایم اولویت اول با باکس باشه بعد اونا

برای این مورد چیکار باید کرد؟

لینک به ارسال

منظورم این نبود که این کار نمیکنه، کار میکنه خوبم هست ولی شما با کمی کد نویسی میتونید همچین بخشی رو خودتون بسازید فقط اینکه اون تعیین متغیر هارو از بین ببرید که هنگام وارد کردن همچین چیزی، نوشتش رو همونجا خودتون بنویسید و لینکشو بذارید؛ اگر به مثالم برای سایت های فیلم توجه کنید بیشتر متوجه میشید.

اینکاری که شما میگید رو من بلد نیستم که با فانکشن بتونید همچین چیزی رو پیاده سازی کرد.

اولویت بندی هم خیلی سادست، شما این کدهایی که گفتم رو تو دوتا فایل مینویسید مثلا file.php و file2.php حالا تو صفحه سینگلتون اونجایی که میخواد این قسمت از کدها اجرا بشه میرید و فراخوانیش میکنید با دستور incloud یه مثال هم میذارم ببینید.

<?php include 'اسم پوشه/file.php'; ?>

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

  • تشکر 1
لینک به ارسال

سلام

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

در غیر اینصورت میتونید از تابع get_template_part استفاده کنید

https://developer.wordpress.org/reference/functions/get_template_part/

 

  • تشکر 1
لینک به ارسال

همانگونه که گفتم ساخت زمینه دلخواه مشکلی نیست

مشکل بخش دوم هست که یکسری افزونه مثل امتیازدهی و … بطور اتوماتیک خودشون قرار میدن اخر مطلب و‌ ما میخوایم اولویت اول با باکس باشه بعد اونا

برای این مورد چیکار باید کرد؟

لینک به ارسال
  • 2 ماه بعد...
در در ۱۴۰۱/۲/۱۷ در 16:27، ahmad4u گفته است :

همانگونه که گفتم ساخت زمینه دلخواه مشکلی نیست

مشکل بخش دوم هست که یکسری افزونه مثل امتیازدهی و … بطور اتوماتیک خودشون قرار میدن اخر مطلب و‌ ما میخوایم اولویت اول با باکس باشه بعد اونا

برای این مورد چیکار باید کرد؟

سلام. شما میخواید از یه پلاگین خیلی عالی و .. که کلی امکانات هم بهت میده استفاده نکنی و به جاش کلی کد بنویسی توی قالبت اونم با این سطح برنامه نویسیت؟ دوست عزیز بهترین راه برای شما استفاده از پلاگین acf هست چون کد های اضافی که حتی دلیل استفاده از اونها رو هم نمیدونید و فقط کپی پیست میکنید مطمئنن به مشکل خواهید خورد در آینده! البته این بازم بستگی داره که چقد به وبسایتت اهمیت بدی! روز خوش!

  • ناراحت 1
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...