Mesmaili

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

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

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

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

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

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

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

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

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

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

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

ممنون.

2

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


لینک به پست

سلام

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

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

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

2

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


لینک به پست

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

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

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

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

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

cover

ogg

m128

m320

و...

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

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

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

1

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


لینک به پست

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

////********************************************************************************////
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 ایجاد و ذخیره میشه.

6

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


لینک به پست

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

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

باید تابغ :


<?php echo $test; ?>

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

1

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


لینک به پست

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



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

?>

5

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


لینک به پست

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

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

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

2

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


لینک به پست

سلام من این کد رو تویه 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"]);
}

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

0

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


لینک به پست

Sajjad چه خطایی؟

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

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

1

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


لینک به پست

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

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

0

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


لینک به پست

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>',

));

?>

4

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


لینک به پست

سلام این کارو کاردم اما قالب پایین اومد و بالاش خالی شد

0

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


لینک به پست

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

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

));

?>

0

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


لینک به پست

یکم رفت بالا ولی باز فاصله داره :D

0

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


لینک به پست

سایتتون آنلاین هست که بتونیم در عمل ببینیم؟

0

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


لینک به پست

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

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

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

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

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

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

ممنون

0

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


لینک به پست

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

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

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

1

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


لینک به پست

الان یعنی راهی نداره؟

0

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


لینک به پست

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

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

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

2

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


لینک به پست

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

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

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

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

0

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


لینک به پست

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

1

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


لینک به پست

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

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

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

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

0

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


لینک به پست

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

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

2

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


لینک به پست

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

3

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


لینک به پست

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

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

1

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


لینک به پست

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

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

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

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


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

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

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


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