رفتن به مطلب

خطا به حلفه فورایج در قالب وردپرس


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

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

 

<hr> 
  <?php $name_family_dr = get_post_meta($post->ID, 'name_family_dr', false); ?> 
      <strong> نام خانوادگی :</strong> 
      <ul> 
          <?php foreach($name_family_dr as $name_family_dr) { 
              echo '<li>'.$name_family_dr.'</li>'; 
              } ?> 
      </ul>  
<hr>   
      <?php $Expertise = get_post_meta($post->ID, 'Expertise', false); ?> 
    <strong>تخصص :</strong> 
      <ul> 
          <?php foreach($Expertise as $Expertise) { 
              echo '<li>'.$Expertise.'</li>'; 
              } ?> 
      </ul> 
<hr>

 

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

 

content.txt

لینک به ارسال

با سلام و احترام در اجرای دستور foreach وقتی مقدار رو میدید مثلا $Expertise بعد از as باید یک نام دیگری باشه که معمولا مثل زیر میباشد 

foreach($names as $name)

 

لینک به ارسال
در 47 دقیقه قبل، naghmesara گفته است :

سلام و درود

 

دقیقا چه خطایی میده؟

ممنون دوست عزیز

فقط به همین خطی که حلقه فورایچ هست خطا میگیره و هیچ پیغام دیگه ای نمیده!

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

ویرایش شده توسط m4xs051
لینک به ارسال
در 45 دقیقه قبل، Fenix.ir گفته است :

با سلام و احترام در اجرای دستور foreach وقتی مقدار رو میدید مثلا $Expertise بعد از as باید یک نام دیگری باشه که معمولا مثل زیر میباشد 


foreach($names as $name)

 

ممنون دوست عزیز

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

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

لینک به ارسال
<hr> 
  <?php $name_family_dr = get_post_meta($post->ID, 'name_family_dr', false); ?> 
      <strong> نام خانوادگی :</strong> 
      <ul> 
          <?php foreach($name_family_dr as $name_family) { 
              echo '<li>'.$name_family.'</li>'; 
              } ?> 
      </ul>  
<hr>   
      <?php $Expertise = get_post_meta($post->ID, 'Expertise', false); ?> 
    <strong>تخصص :</strong> 
      <ul> 
          <?php foreach($Expertise as $E) { 
              echo '<li>'.$E.'</li>'; 
              } ?> 
      </ul> 
<hr>

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

لینک به ارسال

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

لینک به ارسال
در 25 دقیقه قبل، Fenix.ir گفته است :

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

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

Warning: Invalid argument supplied for foreach() 

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

لینک به ارسال
در 9 دقیقه قبل، Fenix.ir گفته است :

لطفا از دیتا خودتون یک var_dump ارسال کنید 

ببخشید منظورتون رو متوجه نمیشم.

کلیت کاری که انجام دادم اینه: 

یه سری زمینه های سفارشی تو نوشته ها تعریف کردم که تو خروجی میخوام نشونشون بدم.

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

لینک به ارسال

دوست عزیز متوجه نمیشم چه ربطی به قالب شما داره شما الان دیتاتون احتمالا مشکل داره مثلا string هست شاید که خوب خطا میخوره 

var_dump(get_post_meta($post->ID, 'name_family_dr', false));

 

ویرایش شده توسط Fenix.ir
لینک به ارسال
در 13 دقیقه قبل، Fenix.ir گفته است :

دوست عزیز متوجه نمیشم چه ربطی به قالب شما داره شما الان دیتاتون احتمالا مشکل داره مثلا string هست شاید که خوب خطا میخوره 


var_dump(get_post_meta($post->ID, 'name_family_dr', false));

 

 

var_dump رو تست کردم این شد خروجیش: 

bool(false)

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

لینک به ارسال

اگر از نوع تکس باشه نمیشه با foreach استخراج کرد فور ایچ برای array میباشد یعنی همون دیتا لیست وار

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

<hr> 
  <?php 
	$name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true); 
	
  ?> 
      <strong> نام خانوادگی :</strong> 
      <ul> 
          <?= '<li>'.$name_family_dr.'</li>' ?> 
      </ul>  
<hr>   
      <?php $Expertise = get_post_meta(get_the_ID(), 'Expertise', true); ?> 
    <strong>تخصص :</strong> 
      <ul> 
        <?= '<li>'.$Expertise.'</li>'?> 
      </ul> 
<hr>

 

لینک به ارسال
در 7 دقیقه قبل، Fenix.ir گفته است :

اگر از نوع تکس باشه نمیشه با foreach استخراج کرد فور ایچ برای array میباشد یعنی همون دیتا لیست وار

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


<hr> 
  <?php 
	$name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true); 
	
  ?> 
      <strong> نام خانوادگی :</strong> 
      <ul> 
          <?= '<li>'.$name_family_dr.'</li>' ?> 
      </ul>  
<hr>   
      <?php $Expertise = get_post_meta(get_the_ID(), 'Expertise', true); ?> 
    <strong>تخصص :</strong> 
      <ul> 
        <?= '<li>'.$Expertise.'</li>'?> 
      </ul> 
<hr>

 

ممنون عالی بود. مشکل برطرف شد.

لینک به ارسال
در 30 دقیقه قبل، Fenix.ir گفته است :

اگر از نوع تکس باشه نمیشه با foreach استخراج کرد فور ایچ برای array میباشد یعنی همون دیتا لیست وار

شما برای استخراج این موارد بهتر است مثل کد زیر عمل کنید ...

 

یه سوال آخر:

الان این کدی که براتون پیوست میکنم مشکلش رو میشه ببینید چیه؟ 

<hr>
  <?php $name_family_dr = get_post_meta($post->ID, 'name_family_dr', true); ?>
  	<strong>نام و نام خانوادگی دکتر :</strong>
  	<ul>
        <?= '<li>'.$name_family_dr.'</li>'?> 
  	</ul> 
<hr> 

شبیه به نمونه کد شما اصلاح کردم ولی مقادیر رو برنمیگردونه و تو li ها خالی هست!هیچ خطایی دریافت نمیکنم.

ویرایش شده توسط m4xs051
اصلاح کد پیوستی
لینک به ارسال

یه سوال دیگه پیرامون همین موضوعی هست که برام پیش اومده:

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

به طور مثال: نام و نام خانوادگی دکتر رو الا اگه زمانی که نوشته منتشر میشه وارد نکنیم تو خروجی داریم:

نام و نام خانوادگی دکتر: 

 

مرسی پیشاپش از همراهی دوستان همچنین @Fenix.ir  عزیز.

 

لینک به ارسال

درود مجدد

 

مثلا به این شکل:

<?php
$name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true);
if(isset($name_family_dr)) {
 // اگر وارد شده بود اینجا نشون داده میشه
}

در کد بالا تابع isset چک میکنه که متغییر name_family_dr خالی هست یا خیر اگر خالی نبود true رو برمیگردونه در نتیجه چیزی که درون if نوشتین اجرا میشه.

 

موفق باشید

ویرایش شده توسط naghmesara
لینک به ارسال
در 6 ساعت قبل، naghmesara گفته است :

درود مجدد

 

مثلا به این شکل:


<?php
$name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true);
if(isset($name_family_dr)) {
 // اگر وارد شده بود اینجا نشون داده میشه
}

در کد بالا تابع isset چک میکنه که متغییر name_family_dr خالی هست یا خیر اگر خالی نبود true رو برمیگردونه در نتیجه چیزی که درون if نوشتین اجرا میشه.

 

موفق باشید

ممنون دوست عزیز بابت پاسخگویی لطف کردی...

نمونه کد رو با توجه به توضیحاتی که شما دادی اصلاح کردم ولی اجرا که میکنم کلا هیچی بالا نمیاد دیگه!

این نمونه کد هست:

<?php $name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true); ?>
<h4 class="w-iconbox-title">نام و نام خانوادگی دکتر :</h4>
<div class="w-iconbox-text">
  <?= if(isset($name_family_dr)) { '<li>'.$name_family_dr.'</li>' } ?>
</div>

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

لینک به ارسال
<?php $name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true); ?>
<h4 class="w-iconbox-title">نام و نام خانوادگی دکتر :</h4>
<div class="w-iconbox-text">
  <?php if(isset($name_family_dr)) { echo '<li>'.$name_family_dr.'</li>'; } ?>
</div>

 

لینک به ارسال

درود مجدد

 

<?php $name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true); ?>
<h4 class="w-iconbox-title">نام و نام خانوادگی دکتر :</h4>
<div class="w-iconbox-text">
  <?php if(isset($name_family_dr))
	echo '<li>'.$name_family_dr.'</li>';
  ?>
</div>

کد بالا رو تست کنید باید اجرا بشه.

وقتی از

<?=

استفاده میکنید یعنی میخواید echo کنید در حالی که if رو نمیشه echo کرد.

 

موفق باشید

ویرایش شده توسط naghmesara
لینک به ارسال
در 3 ساعت قبل، naghmesara گفته است :

درود مجدد

 


<?php $name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true); ?>
<h4 class="w-iconbox-title">نام و نام خانوادگی دکتر :</h4>
<div class="w-iconbox-text">
  <?php if(isset($name_family_dr))
	echo '<li>'.$name_family_dr.'</li>';
  ?>
</div>

کد بالا رو تست کنید باید اجرا بشه.

وقتی از


<?=

استفاده میکنید یعنی میخواید echo کنید در حالی که if رو نمیشه echo کرد.

 

موفق باشید

ممنون دوست عزیز ;)

کد رو اجرا کردم خروجیش تو عکسی که پیوست میکنم هست.

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

596c85b77eb11_ScreenShot2017-07-17at14_09_29.png.f43b19c6d55842789a8748f60354b64c.png

 

درصورتی که الان هیچی دیگه نباید نشون بده نه نام و نام خانوادگی و نه نقطه پایین!

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

درود مجدد

 

خوب شما اون بخش نام و نام خانوادگی دکتر هم باید بذارید توی if به شکل زیر:

 

<? $name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true);
if(isset($name_family_dr)) : ?>
<h4 class="w-iconbox-title">نام و نام خانوادگی دکتر :</h4>
<div class="w-iconbox-text">
<?= '<li>'.$name_family_dr.'</li>'; ?>
</div>
<? endif; ?>

 

موفق باشید

لینک به ارسال
در 3 ساعت قبل، Fenix.ir گفته است :

<?php $name_family_dr = get_post_meta(get_the_ID(), 'name_family_dr', true); ?>
<h4 class="w-iconbox-title">نام و نام خانوادگی دکتر :</h4>
<div class="w-iconbox-text">
  <?php if(isset($name_family_dr)) { echo '<li>'.$name_family_dr.'</li>'; } ?>
</div>

 

ممنون که پاسخگو هستین.

این کد رو هم اجرا کردم دقیقا خروجیش مثل کد این دوستمون @naghmesara شد.

لینک به ارسال

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

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

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

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

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

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

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

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

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