رفتن به مطلب

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


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

سلام خدمت دوستان.

یک سوالی داشتم !

ببینید ، الان سایت من زمینه دلخواه داره.

و چون حدودا هر پست ، 7 8 زمینه دلخواه داره و بخوام جداگونه همرو ادد کنم ، یکم زمان میبره ، راه ساده تری هست که اینکارو کنم؟

یعنی به تعداد زمینه های دلخواهم ، فیلد آماده درست کنم و فقط جلوش رو پر کنم ، بدون نیاز به اضافه کردن دونه دونه.

این آموزش رو پیدا کردم :

http://geniusboy.ir/wordpress/598/how-to-simplify-wordpress-custom-fields-layout-for-a-layman

انجام هم دادم اما تغییری نکرد ! و یا اینکه من اشتباه انجام دادم. اگر میشه دوستان یکم بازتر توضیح بدن !

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

ممنون.

لینک به ارسال

سلام

با عرض خوشامدگویی به شما دوست عزیز

آموزش وحید عزیز برای ایجاد متابکس هست که در متاباکس مقادیر زمینه های موردنیاز رو وارد و ذخیره میکنه.

آموزشش ساده و روشن بود. شما کجاش رو مشکل دارید؟

لینک به ارسال

ممنون از پاسخگویی شما.

حقیقتا من همون موارد رو انجام دادم ، ولی هیچ تغییری نکرد !

زیر همون پست هم نظر دادم که یه فایل آماده و ساده ضمیمه کنن تا مفهوم رو بهتر برسونه ، اما ظاهرا آقا وحید آنلاین نشدن تا پاسخ بدن.

اینطور که از اون نظرات پیدا بود ، چندنین نفر از دوستان همین مشکل من رو دارن.

برای مثال من زمینه دلخواه هایی با اسم های زیر دارم:

cover

ogg

m128

m320

و...

کدهاشون چی میشه؟

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

سپاس فراوان مرتضی جان

لینک به ارسال

من یک کد ساده قرار میدم شما تست کنید:

////********************************************************************************////
add_action("admin_init", "admin_init_meta_");
add_action('save_post', 'save_post_meta');

function admin_init_meta_(){
add_meta_box("prodInfo-meta", "اطلاعات ورودی", "meta_options", "post", "normal", "high");
}

function meta_options(){
global $post;
$test = $custom["test"][0];
?>
<table border="0">
<tr>
<td><label>ورودی تست</label></td><td><input name="test" value="<?php echo $test; ?>" size="10" /></td>
</tr><tr>
</table>
<?php
}

function save_post_meta(){
global $post;
update_post_meta($post->ID, "test", $_POST["test"]);
}


////********************************************************************************////

به فایل فانکشن کد بالا رو اضافه کنید.

زمینه با نام test ایجاد و ذخیره میشه.

لینک به ارسال

سپاس ازین که پاسخ دادید.

کار نکرد ! یعنی توی پنل اومد اما در سایت نمایش داده نشد.

باید تابغ :


<?php echo $test; ?>

رو میذاشتم دیگه؟

لینک به ارسال

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



<?php
$test = get_post_meta($post->ID, "test", true);
if($test){
echo $test ;
}

?>

لینک به ارسال

ممنونم. عالی بود.

کار کرد در حد چی :دی

امیدوارم این انجمن پشتیبانی مثلِ انجمن های دیگه نشه و ما یه پشتیبان خوب واس وردپرس داشته باشیم ! :دی

لینک به ارسال
  • 1 ماه بعد...

سلام من این کد رو تویه functions میزارم و تو این قسمت ارور میده ( تویه کد رو ببینید )


add_action("admin_init", "admin_init_meta_");
add_action('save_post', 'save_post_meta');

function admin_init_meta_(){
add_meta_box("prodInfo-meta", "اطلاعات ورودی", "meta_options", "post", "normal", "high");
}

function meta_options(){
global $post;
$test = $custom["test"][0];
?>
<table border="0">
<tr>
<td><label>ورودی تست</label></td><td><input name="test" value="<?php echo $test; ?>" size="10" /></td>
</tr><tr>
</table>
<?php
>>>>>>>>>>>>> این قسمت ارور میده }

function save_post_meta(){
global $post;
update_post_meta($post->ID, "test", $_POST["test"]);
}

در ضمن میشه کاری کرد که اگه زمینه های دلخواه رو چیزی نزاشتی تو قالب نباشن؟ مثلا - لینک دانلود - چه لینک رو بزاری چه نزاری این زمینه تو قالب هستش ممنون

لینک به ارسال

Sajjad چه خطایی؟

کد را قبل از <? قرار دهید

واسه سوال دوم هم پست قبلی من رو بخونید

لینک به ارسال

سلام این خطا رو باز داد

Parse error: syntax error, unexpected '<' in D:\xampp\htdocs\wp\wp-content hemes\S2\functions.php on line 27

اینم فایل functions

http://uploadkon.ir/?file=bea25d4a35b477bea961a97b93ae0f69.zip

لینک به ارسال

Sajjad محتوای فایل فانکشن را حذف کنید و کد زیر را قرار دهید:

<?php

add_action("admin_init", "admin_init_meta_");

add_action('save_post', 'save_post_meta');

function admin_init_meta_(){

add_meta_box("prodInfo-meta", "اطلاعات ورودی", "meta_options", "post", "normal", "high");

}

function meta_options(){

global $post;

$test = $custom["test"][0];

?>

<table border="0">

<tr>

<td><label>ورودی تست</label></td><td><input name="test" value="<?php echo $test; ?>" size="10" /></td>

</tr><tr>

</table>

<?php

}

function save_post_meta(){

global $post;

update_post_meta($post->ID, "test", $_POST["test"]);

}

if ( function_exists('register_sidebar') )

register_sidebar(array('name'=>'right',

'before_widget' => '<div class="sidebar-box">',

'after_widget' => '</DIV>

<DIV class=sidebar-box-footer></div>

</div>

',

'before_title' => '<H3><div class="title">',

'after_title' => '</div></H3>

<DIV class=sidebar-box-content>',

));

if ( function_exists('register_sidebar') )

register_sidebar(array('name'=>'left',

'before_widget' => '<div class="sidebar-box">',

'after_widget' => '</DIV>

<DIV class=sidebar-box-footer></div>

</div>

',

'before_title' => '<H3><div class="title">',

'after_title' => '</div></H3>

<DIV class=sidebar-box-content>',

));

?>

لینک به ارسال

این کد رو تست کنید:

<?php

add_action("admin_init", "admin_init_meta_");

add_action('save_post', 'save_post_meta');

function admin_init_meta_(){

add_meta_box("prodInfo-meta", "اطلاعات ورودی", "meta_options", "post", "normal", "high");

}

function meta_options(){

global $post;

$test = $custom["test"][0];

?>

<table border="0">

<tr>

<td><label>ورودی تست</label></td><td><input name="test" value="<?php echo $test; ?>" size="10" /></td>

</tr>

</table>

<?php

}

function save_post_meta(){

global $post;

update_post_meta($post->ID, "test", $_POST["test"]);

}

if ( function_exists('register_sidebar') )

register_sidebar(array('name'=>'right',

'before_widget' => '<div class="sidebar-box">',

'after_widget' => '</div>

<div class=sidebar-box-footer></div>',

'before_title' => '<h3><div class="title">',

'after_title' => '</div></h3>',

));

if ( function_exists('register_sidebar') )

register_sidebar(array('name'=>'left',

'before_widget' => '<div class="sidebar-box">',

'after_widget' => '</div>

<div class=sidebar-box-footer></div>',

'before_title' => '<h3><div class="title">',

'after_title' => '</div></h3>',

));

?>

لینک به ارسال
  • 1 ماه بعد...

درود دوباره !:دی

کد که برای من عالی کار کرد.

فقط و فقط یک مشکل بزرگ داره !

ببینید برای مثال من پست هام ، 10 تا زمینه دلخواه دارن.

هرباری که پست رو ارسال کردم و بخوام ویرایش کنم ، باید دوباره هر دو تا رو پر کنم ! چون توی ویرایش ، فیلد ها خالی میشن !

نمیشه کاری کرد که فیلد ها خالی نشن ؟

ممنون

لینک به ارسال

احتمالا مشکل از کلاسها و توابع وردپرس هست.

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

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

لینک به ارسال

تعویض کد یک راهش هست.

باید این نوع مشکلات رو با آزمون و خطا پیدا کرد.

مثلا یک راه حل هم این هست که تا وقتی پستی ارسال نشده (یعنی post فرستاده نشده) کدهای بالا عملیاتی انجام ندن و لود نشن.

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

سلام متشكرم.. اقا مرتضي تو پيام خصوصي گفته بودم كه از كد اد اكشن احساس ميكنم بايد استفاده بشه :دي

خيلي عالي بود عالي من مشكلم حل شد

فقط يه مساله ميمونه! كدي كه اقا مرتضي داده خيلي خوبه از اين جهت كه وقتي اين متاباكس رو اضافه ميكني مياد دقيقا بالاترين بخش از قسمت زمينه هاي دلخواه قرار ميگيره يعني ميري تو صفحه ارسال پست جديد ، دقيقا زير كادر افزوند نوشته ، اولين كادري كه اضافه ميشه همين متاباكسه ولي كدي كه توي اين سايت داده شده رو استفاده كردم اينم براي من كار كرد ولي نميدونم چرا رفته پايين تر از همه بخش ها دقيقا زير بخش زمينه هاي دلخواه و نويسنده و بازتاب ها قرار گرفته1؟؟ بايد با دست به صورت درك كردن جاشو عوض كني! چرا اينطوريه؟؟

راستي اقا مرتضي كد اين دوستمون كه تو سايتش داده هم ذخيره ميشه و ديگه پاك نميشه اگر دوستمون مشكلش حل نشده ميشه برسي كنيد كد اين سايت رو كه چيكار كرده كه ذخيره ميشه مقادير فيلدش

لینک به ارسال

اخرین خاصیت برای add_meta_box رو در کدتون از low روی high قرار بدید.

لینک به ارسال

حالا که این تاپیک گرمه ، سوالم رو بپرسم ! :دی

یکی از زمینه های دلخواه من به طور خیلی عجیبی از کار افتاد!

یعنی مقدار رو وارد میکنم ، نمایش میده ، اما لینک سایت رو نمایش میده ! با وجود اینکه شرط گذاشتم برای اینکه وقتی زمینه دلخواه وارد شده باشه ، اون باتن نمایش دادم بشه !

توی ویرایش پست هم زمینه دلخواه هست ، اما توی پست خالی میاره !!

لینک به ارسال

اتفاق که خودبخود نمی افته

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

لینک به ارسال

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

یک اشتباه مبتدیانه باعثش بود....

لینک به ارسال

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

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

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

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

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

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

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

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

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