رفتن به مطلب

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


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

سلام من یه زمینه دلخواه دارم با اسم custom اینو هم بگم که این زمینه بصورت آرایه هستش

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

چطور میشه محتوای یک زمینه دلخواه از نوع آرایه چک کرد که وازه توش هست یا نه

لینک به ارسال

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

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


<?php
$features = get_post_meta($post->ID, "custom", true);
if($features!="") :?>
<?php
;
$featurez = explode("~", $features);
$out = '';
foreach ($featurez as $feature) {
$linkz = explode("|", $feature);
$out .= '<li class="dl"><a href="'. $linkz[0] .'?">'. $linkz[1] ."</a></li>\n";
}

echo $out;
?>
<?php endif; ?>

حالا میخوام بگم اگه تو این زمینه واژه دیتا پیدا کردی فلان کد عمل کنه

مثلا این کد نشون بده

<li class="test"></li>

لینک به ارسال

$features = get_post_meta($post->ID, "custom", true);
if($features){
$featurez = explode("~", $features);
array_flip($featurez);
if(in_array('دیتا', $featurez))
echo 'exists';

}

لینک به ارسال

من کد را به این صورت استفاده کردم


<?php
$features = get_post_meta($post->ID, "custom", true);
if($features){
$featurez = explode("~", $features);
array_flip($featurez);
if(in_array('دیتا', $featurez)) ?>
<br/>
<li class="undo"><a href="http://www.fadroid.ir/lering/list-mobile-processors-gpu/" target="_blank">راهنمای انواع پردازنده های گرافیکی موبایل جهت انتخاب نوع گیم دیتا</a></li>
<?php }?>

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

لینک به ارسال

بلاک را باید مشخص کنید:


<?php
$features = get_post_meta($post->ID, "custom", true);
if($features){
$featurez = explode("~", $features);
array_flip($featurez);
if(in_array('دیتا', $featurez)){ ?>
<br/>
<li class="undo"><a href="http://www.fadroid.ir/lering/list-mobile-processors-gpu/" target="_blank">راهنمای انواع پردازنده های گرافیکی موبایل جهت انتخاب نوع گیم دیتا</a></li>
<?php
}
}?>

لینک به ارسال

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

ولی حالا دیگه هیچی نشون نمیده

لینک به ارسال

کدکه مشکل نداره. شما با رشته فارسی تست کردید؟ یا انگلیسی؟

لینک به ارسال

کد مشکلی نداره

شما داده ها را بررسی کنید

برای مثال این رو فقط اجرا کنید:


<?php
$features = "تست~ديتا~وردپرس";
if($features){
$featurez = explode("~", $features);
array_flip($featurez);
if(in_array('ديتا', $featurez)){
echo 'exists';
}
}
?>

لینک به ارسال

آقا پارسا کد شما به درستی کار میکنه من توی یه فایل test.php تست کردم

حالا همون کد استفاده کنم تو singel.php جواب نمیده

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


get_post_meta($post->ID, "custom", true);

عمل نمیکنه تو این کد چون وقتی تو همون singel.php به صورت دستی یعنی بجای کد بالا مستقیم توی


$features = "تست~وردپرس~دیتا";

داده تزریق کنم جواب میده

حالا چند تا سوال برای من پیش میاد

آیا ممکنه تداخل کد باشه؟

چون من دارم چند خط بالاتر توسط کد


<?php
$features = get_post_meta($post->ID, "custom", true);
if($features!="") :?>
<?php
;
$featurez = explode("~", $features);
$out = '';
foreach ($featurez as $feature) {
$linkz = explode("|", $feature);
$out .= '<li class="dl"><a href="'. $linkz[0] .'?">'. $linkz[1] ."</a></li>\n";
}

echo $out;
?>
<?php endif; ?>

اطلاعات همون زمینه رو چاپ میکنم

مشکل از چی میتونه باشه؟؟؟

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

احتمالا کوئری گرفته شده

شما $post->ID را ببینید کجا مقدار درستی داره

همونجا مقدار زمینه را بگیرید

لینک به ارسال

post->ID را در ابتدا و خطوط دیگر فایل echo کنید . تا شناسه پست رو برگردونه

لینک به ارسال

من که نمیخوام واسه یه پست اینکار بکنم!!! واسه هر پست یه عدد خاص خودشو بر میگردونه

حالا این اعداد چه کمکی میکنه؟

اول آخر وسط شرط تو همه حالا عدد پست برگردوند

لینک به ارسال

وقتی شناسه پست رو درست خروجی بده

حتما get_post_meta هم درست خواهد شد

احتمالا در مقداردهی زمینه اشتباه کردید

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

لینک به ارسال

احتمالا در مقداردهی زمینه اشتباه کردید

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

این تیکه متوجه نشدم!!!!!

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

اینجا رو نیگا کنید

از همون کد داره زمینه خروجی میده

http://www.fadroid.ir/games/the-adventures-of-tintin-for-android/

لینک به ارسال

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

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

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

اگه کارم دست انجام داده بودم من حتی اسم متغییر هارو تغییر دادم ولی بازم جواب نگرفتم

الان شرط هم خوب کار میکنه و تنها مشکل همون قسمت get post meta هست البته حدس من هست چون وقتی بصورت دستی مقدار تزریق کنم کد به درستی جواب میده

لینک به ارسال

شما مقدار زمینه رو قبل از اینکه توی متغییر بریزید echo کنید ببینید مقدار رو بهتون نمشون میده؟

اگر نشون نداد پس مشکل از همون هست

لینک به ارسال
  • 3 هفته بعد...

سلام

من دوباره امدم اینجا چون دوباره این قضیه نیازم شد

کسی هست کمک کنه که چرا نتیجه نمیگیرم؟

لینک به ارسال

اگه منظورتون فایل single بود پیوست کردم

single.php

در ضمن اینو بگم که


<?php
$features = get_post_meta($post->ID, "custom", true);
echo $features;
if($features!=""){
$featurez = explode("~", $features);
array_flip($featurez);
if(in_array('دیتا', $featurez)){?>
<br/><li class="undo"><a href="http://www.fadroid.ir/lering/list-mobile-processors-gpu/" target="_blank">راهنمای انواع پردازنده های گرافیکی موبایل جهت انتخاب نوع گیم دیتا</a></li>
<?php
}
}?>

با قرار دادن echo $features; در خط دوم محتویات زمینه چاپ میشود و محتویات به درستی گرفته میشود

لینک به ارسال

من مشکلی در کدها نمیبینم

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

features

featurez

لینک به ارسال

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

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

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

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

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

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

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

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

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