Sgwgo

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

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

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

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

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

0

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


لینک به پست

تست کنید:


array_flip($custom);
if(in_array('دیتا', $custom))
echo 'exists';

5

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


لینک به پست

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

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


<?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>

0

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


لینک به پست

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

}

4

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


لینک به پست

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


<?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 باشه مقدار شرط دوم نشون میده

0

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


لینک به پست

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


<?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
}
}?>

2

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


لینک به پست

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

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

0

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


لینک به پست

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

1

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


لینک به پست

دقیقا کد بالا یعنی رشتهی فارسی

0

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


لینک به پست

راهی نداره دیگه؟

0

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


لینک به پست

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

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

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


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

1

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


لینک به پست

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

آقا پارسا کد شما به درستی کار میکنه من توی یه فایل 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
0

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


لینک به پست

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

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

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

0

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


لینک به پست

متوجه نشدم آقا پارسا یخورده بیشتر توزیح

0

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


لینک به پست

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

0

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


لینک به پست

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

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

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

0

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


لینک به پست

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

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

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

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

1

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


لینک به پست

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

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

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

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

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

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

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

0

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


لینک به پست

شما در همون صفحات متغیرهایی با اسم یکسان دارید؟

0

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


لینک به پست

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

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

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

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

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

0

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


لینک به پست

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

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

0

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


لینک به پست

سلام

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

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

0

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


لینک به پست

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

0

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


لینک به پست

اگه منظورتون فایل 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; در خط دوم محتویات زمینه چاپ میشود و محتویات به درستی گرفته میشود

0

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


لینک به پست

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

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

features

featurez

1

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


لینک به پست

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

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

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

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


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

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

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


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