رفتن به مطلب

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


Milad123

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

سلام به همگی

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


<?php
define('MY_WORDPRESS_FOLDER',$_SERVER['DOCUMENT_ROOT']);
define('MY_THEME_FOLDER',str_replace('\\','/',dirname(__FILE__)));
define('MY_THEME_PATH','/' . substr(MY_THEME_FOLDER,stripos(MY_THEME_FOLDER,'wp-content')));
add_action('admin_init','my_meta_init');
function my_meta_init()
{

wp_enqueue_style('my_meta_css', MY_THEME_PATH . '/custom/meta.css');

foreach (array('post','page') as $type)
{
add_meta_box('my_all_meta', 'توضیحات تکمیلی خبر', 'my_meta_setup', $type, 'normal', 'high');
}

add_action('save_post','my_meta_save');
}
function my_meta_setup()
{
global $post;
$meta = get_post_meta($post->ID,'_my_meta',TRUE);
include(MY_THEME_FOLDER . '/custom/meta.php');
echo '<input type="hidden" name="my_meta_noncename" value="' . wp_create_nonce(__FILE__) . '" />';
}

function my_meta_save($post_id)
{
if (!wp_verify_nonce($_POST['my_meta_noncename'],__FILE__)) return $post_id;

if ($_POST['post_type'] == 'page')
{
if (!current_user_can('edit_page', $post_id)) return $post_id;
}
else
{
if (!current_user_can('edit_post', $post_id)) return $post_id;
}

$current_data = get_post_meta($post_id, '_my_meta', TRUE);

$new_data = $_POST['_my_meta'];
my_meta_clean($new_data);

if ($current_data)
{
if (is_null($new_data)) delete_post_meta($post_id,'_my_meta');
else update_post_meta($post_id,'_my_meta',$new_data);
}
elseif (!is_null($new_data))
{
add_post_meta($post_id,'_my_meta',$new_data,TRUE);
}
return $post_id;
}
function my_meta_clean(&$arr)
{
if (is_array($arr))
{
foreach ($arr as $i => $v)
{
if (is_array($arr[$i]))
{
my_meta_clean($arr[$i]);
if (!count($arr[$i]))
{
unset($arr[$i]);
}
}
else
{
if (trim($arr[$i]) == '')
{
unset($arr[$i]);
}
}
}
if (!count($arr))
{
$arr = NULL;
}
}
}

?>

لینک به ارسال

درود.

فکر می کنم کد های مورد بحث شما در فایل single باشند فایل مورد نظر را بگذارید.

یه فایل هست به اسم metabox.php که کداشو توی پست اول گذاشتم.

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

نمونه کد :


<label>نام فیلم یا سریال</label>
<p>
<textarea name="_my_meta[namefs]" rows="1"><?php if(!empty($meta['namefs'])) echo $meta['namefs']; ?></textarea>
<span>محل وارد کردن نام فیلم یا سریال</span>
</p>

توی فایل سینگل هم به این صورت فراخوانی میشن :


<?php if( $my_meta = get_post_meta($post->ID,'_my_meta',TRUE)){echo $my_meta['namefs'];} else{ if(isset($mid_var) && !empty($mid_var)) ;} ?>

لینک به ارسال

کد single که گذاشتید موردی نداره الان اگر قصد دارید مثلا اگر مقدار namefs خالی بود به یک لینک دیگر نمایش داده شود در قسمت else به قسمت مورد نظر لینک دهید.

لینک به ارسال

کد single که گذاشتید موردی نداره الان اگر قصد دارید مثلا اگر مقدار namefs خالی بود به یک لینک دیگر نمایش داده شود در قسمت else به قسمت مورد نظر لینک دهید.

یعنی به چه صورت؟!

مثلا من الان میخوام این لینک در صورت خالی بودن به # لینک بشه چیکار باید بکنم؟!


<?php if( $my_meta = get_post_meta($post->ID,'_my_meta',TRUE)){echo $my_meta['downloadfilm480'];} else{ if(isset($mid_var) && !empty($mid_var)) ;} ?>

لینک به ارسال

یعنی به چه صورت؟!

مثلا من الان میخوام این لینک در صورت خالی بودن به # لینک بشه چیکار باید بکنم؟!


<?php if( $my_meta = get_post_meta($post->ID,'_my_meta',TRUE)){echo $my_meta['downloadfilm480'];} else{ if(isset($mid_var) && !empty($mid_var)) ;} ?>

الان کد کامل می باشد ؟(باید بین


<a href=""></a>

باشد!

کد را کامل قرار بدید .

لینک به ارسال

الان کد کامل می باشد ؟(باید بین


<a href=""></a>

باشد!

کد را کامل قرار بدید .

بفرما :


<a href="<?php if( $my_meta = get_post_meta($post->ID,'_my_meta',TRUE)){echo $my_meta['downloadfilm480'];} else{ if(isset($mid_var) && !empty($mid_var)) ;} ?>" class="tbutton medium"><span>لینک مستقیم 480</span></a>

لینک به ارسال

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


<a href="<?php if( $my_meta = get_post_meta($post->ID,'_my_meta',TRUE)){echo $my_meta['downloadfilm480'];} else{ echo '#';} ?>" class="tbutton medium"><span>لینک مستقیم 480</span></a>

لینک به ارسال

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


<a href="<?php if( $my_meta = get_post_meta($post->ID,'_my_meta',TRUE)){echo $my_meta['downloadfilm480'];} else{ echo '#';} ?>" class="tbutton medium"><span>لینک مستقیم 480</span></a>

متاسفانه هیچ فرقی نکرد! :(

لینک به ارسال

تست شد مشکلی نبود.

اگر مقدار نداده باشید به فیلد مورد نظر به آخر آدرس پست یک # اضافه میشه

لینک به ارسال

تست شد مشکلی نبود.

اگر مقدار نداده باشید به فیلد مورد نظر به آخر آدرس پست یک # اضافه میشه

الان من کد رو گذاشتم،هیچ تغییری نسبت به کد قبلی ایجاد نشده متاسفانه!

لینک به ارسال

به این صورت :


<?php if( $my_meta = get_post_meta($post->ID,'_my_meta',TRUE)) { ?>
<a href="<?php echo $my_meta['downloadfilm480']; ?>" class="tbutton medium"><span>لینک مستقیم 480</span></a><?php } ?>

لینک به ارسال

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

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

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

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

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

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

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

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

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