رفتن به مطلب

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


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

جایگزین کنید :


<?php
$disc = get_post_meta($post->ID, 'disc', false);
$mid_var = get_post_meta($post->ID, 'link',false);
$author = get_post_meta($post->ID, 'name', $single = false);
if(isset($mid_var) && !empty($mid_var)) : ?>
<?php for($i=0;$i<count($author);$i++) { ?>
<?php if(isset($disc)) {echo $disc[$i];}?><br/>
<div class="dl222"><a href="<?php echo $mid_var[$i]; ?>">
<?php echo $author[$i]."</div><hr/></li></a>"; } ?>
<?php endif; ?>

لینک به ارسال

ممنون ،

یک مشکلی هست اینه که من اگه برای لینک اول این آی دی دیسک را مثلا فصل اول قرار دادم و بخوام بعد از 12 تا نام و لینک مثلا بزنم فصل دوم امکانش نیست !

یعنی دیسک دوم برای لینک دوم قرار میگیرد نه برای لینک بعد 12 !

فایل ضمیمه

post-2848-0-00507000-1394817028_thumb.jp

لینک به ارسال

بله؛قبلا هم گفتم بهنیه نیست خیلی و برای تعداد بالا مشکل پیش میاد.

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

لینک به ارسال

جایگزین کنید :


<?php
$num= get_post_meta($post->ID,'num',false);
$j=0;
print_r ($num);
$disc = get_post_meta($post->ID, 'disc', false);
$mid_var = get_post_meta($post->ID, 'link',false);
$author = get_post_meta($post->ID, 'name', $single = false);
if(isset($mid_var) && !empty($mid_var)) : ?>
<?php for($i=0;$i<count($author);$i++) { ?>
<?php if(isset($disc)&& $i+1==$num[$j]) {echo $disc[$i-1]; $j++;}?><br/>
<div class="dl222"><a href="<?php echo $mid_var[$i]; ?>">
<?php echo $author[$i]."</div><hr/></li></a>"; } ?>
<?php endif; ?>

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

یک زمینه دلخواه با نام num ایجاد کنید حال مثلا قصد دارید برای 5 لینک اول توضیح بنویسید باید به num مقدار 1 را بدید

بعد مثلا برای 10 لینک دوم مجددا num و مقدار آن 2 بگذارید. و...

تست کنید :)

لینک به ارسال

این خطا را می دهد


Array ( [0] => 1 )

نمیشه این num را هر موقع فراخوانی کرد ظاهر بشه؟ حتی اگه آی دی دیگری فراخوانی نشده باشه ؟

مثلا »

num1 بدون درج name و link اول بتواند ظاهر شود

و هر موقع num2 در زمینه دلخواه تعریف شد ، بعد از آخرین آی دی فراخوانی شده نشان داده شود ( حتی اگر آخرین آی دی فراخوانی شده خود num باشد )

و بصورت زنجیره ای هر موقع تعریف بشه نشان داده بشه

این num را برای توضیحات میخواهم

post-2848-0-74522700-1394876980_thumb.jp

لینک به ارسال

چایگزین کنید :


<?php
$num= get_post_meta($post->ID,'num',false);
$j=0;
$disc = get_post_meta($post->ID, 'disc', false);
$mid_var = get_post_meta($post->ID, 'link',false);
$author = get_post_meta($post->ID, 'name', $single = false);
if(isset($mid_var) && !empty($mid_var)) : ?>
<?php for($i=0;$i<count($author);$i++) { ?>
<?php if(isset($disc)&& $i+1==$num[$j]) {echo $disc[$i-1]; $j++;}?><br/>
<div class="dl222"><a href="<?php echo $mid_var[$i]; ?>">
<?php echo $author[$i]."</div><hr/></li></a>"; } ?>
<?php endif; ?>

الان با این کد کاری که می خوایید انجام بدید درست نشد ؟(توضیح بیشتر )

لینک به ارسال

من میخواستم آی دی

num بدون درج name و link اول هم بتواند ظاهر شود

در اینجا اولین num بعد از name و link ظاهر می شود . یعنی مستقل نیست بعد از name و link ظاهر می شود .

ویرایش شده توسط ♠ AliReza ♠
لینک به ارسال

متوجه شکل نشدم الان مشکل از کد هست یا استایل ؟ (یک عکس با توضیح ضمیمه کنید)


<?php
$num= get_post_meta($post->ID,'num',false);
$j=0;
$disc = get_post_meta($post->ID, 'disc', false);
$mid_var = get_post_meta($post->ID, 'link',false);
$author = get_post_meta($post->ID, 'name', $single = false);
if(isset($mid_var) && !empty($mid_var)) : ?>
<?php for($i=0;$i<count($author);$i++) { ?>
<?php if(isset($disc)&& $i==$num[$j]) {echo $disc[$i]; $j++;}?>
<div class="dl222"><a href="<?php echo $mid_var[$i]; ?>">
<?php echo $author[$i]."</div><hr/></li></a>"; } ?>
<?php endif; ?>

فقط شماره نام را از 0 باید شروع کنید در کد بالا.

disc اول num->0

disc دوم num->1

لینک به ارسال

مشکل با استایل نیست

عکس ضمیمه را مشاهده کنید

در قسمت num0 مشکلی نیست ، برای 4 قسمت از فصل اول توضیحات و لینکها به درستی فراخوانی شده اند و حتی میتوانم 20 قسمت دیگه هم تعریف کنم بدون هیچ مشکلی

اما هنگامی که میخواهم num1 را تعرف کنم و فصل ها جدیدتر را اضافه کنم این num1 در خط بعد num0 ظاهر میشود

من میخواهم

تنها نام num0 اول از

name و link ظاهر شود مطابق عکس که اول ظاهر شده

ولی num1 بعد آخرین

name و link فراخوانی ظاهر شود ( طبق عکس باید بعد از قسمت چهارم ظاهر شود ولی در خط بعد یعنی قسمت اول ظاهر شده است )

و همچنین num2 نیز به همین روند بعد آخرین

name و link فراخوانی ظاهر شود

post-2848-0-72764300-1394880879_thumb.jp

ویرایش شده توسط ♠ AliReza ♠
لینک به ارسال

خوب ببینید روش کار را اشتباه انجام داده اید(التبه با ذهنیت بنده)

مثلا شما الان 20 تا لینک دارید10 تاش برای فصل اول و 10 تای دیگر برای فصل دوم

حال مقدار num اول یعنی برای فصد اول را 0 وارد می کنید و disc را مثلا می نویسید فصل اول

حال برای 10 لینک دوم مقدار num را 10 وارد باید کنید و disc را مثلا فصل دوم

روش فوق را تست کنید :)

لینک به ارسال

متوجه این روش شدم و انجامش دادم

مشکل اینجاست که آی دی num را به ترتیب نشان می دهد یعنی اینکه تا زمانی که آی دی num2 درج نشده باشد ای دی نام num3 نشان داده نمی شود و به همین ترتیب ...

ولی اگر طبق گفته های شما این روش عملی بشه فوق العاده هست .

لینک به ارسال

الان جور در میاد! مثلا وقتی لینک های 10 به بعد قرار هست یک توضیح مثل فصل دوم داشته باشند پس 10 لینک فصل اول هم توضیح دارند و مشکل پیش نمیاد ;)

حال شما می خوایید مثلا وارد کنید برای لینک 10 به بعد توضیح نمایش داده شود در صورتی که چند disc داشته باشید و disc مورد نظر شما برای آن قسمت نمایش داده شود ؟(توضیح بیشتر )

لینک به ارسال

ببینید کد آخری که گذاشته شد از نظر کلی مشکلی نداره اما باید یک سری چیز ها را رعایت کنید مثلا اگر قرار شد توضیح داشته باشند همه داشته باشند.

الان تست کنید می بینید اگر disc اول را داشته باشد برای لینک های 0 تا 10 سر تیتر قرار میگیره و ما num را 0 اینجا وارد می کنیم

حالا برای لینک 11 تا 20 هم می خواییم داشته باشم پس num را 10وارد می کنیم و یک disc دیگه هم با سرتیتر دوم ایجاد می کنیم .

لینک به ارسال

تا زمانی که num1 , num2 وارد نکنم num3 فراخوانی نمیشه

فایل ضمیمه num3 فراخوانی شده اما نشان نمی دهد تا زمانی که دو num قبلی تعریف نشود

post-2848-0-13237400-1394902184_thumb.jp

post-2848-0-17629300-1394902186_thumb.jp

لینک به ارسال

صحبت های بنده هم همین بود در پست های قبلی وقتی قرار هست num3 وجود داشته باشه پس به دو نام قبل هم احتیاج بوده :D

الان کلا می خوایید چطوری کار کنید ؟توضیح بیشتر بدید ؟

لینک به ارسال

پس من درست متوجه منظور شما نشدم

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

مثلا » من می خواهم توی یک مطلب بین قسمت های 10 - 15 - 22 توضیحاتی را با num مشخص کنم اما در مطالب دیگر بین قسمت های 20 - 25 - 32 توضیحاتی را با num مشخص کنم

هرجا که لازم باشه num بیاد بدون اینکه بخوام num های پایین تر را بیاورم

لینک به ارسال

جایگزین کنید :


<?php
$num= get_post_meta($post->ID,'num',false);
$mid_var = get_post_meta($post->ID, 'link',false);
$author = get_post_meta($post->ID, 'name', $single = false);
if(isset($mid_var) && !empty($mid_var)) : ?>
<?php for($i=0;$i<count($author);$i++) { ?>
<?php
foreach($num as $nums) {$disc=explode("!",$nums);
if(isset($disc)&& $i==$disc[0]-1) {echo $disc[1]; }}?>
<div class="dl222"><a href="<?php echo $mid_var[$i]; ?>">
<?php echo $author[$i]."</div><hr/></li></a>"; } ?>
<?php endif; ?>

فقط تغییراتی در کد ها هست :

دیگه نیازی به تعریف disc نیست شما به عنوان مثال می خوایید برای لینک 12 توضیح بزارید به این صورت عمل می کنید :

یک زمینه دلخواه با نام num و مقدار آن به صورت زیر :


12!toozihshoma

به همین صورت برای توضیحات بعدی.

لینک به ارسال

دادش درست شد همونی که واقعا تو فکرم بود :)

خـــــیـــــلی خسته شدی با تاپیک های من :) نمی دونم چجوری ازتو تشکر کنم :rolleyes:

واقعا دمت گرم ، ممنون :wub: :wub: :wub:

لینک به ارسال

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

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

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

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

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

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

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

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

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