رفتن به مطلب

افزودن ویژگی های قالب به پست تایپ سفارشی و دسته بندی سفارشی


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

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

من برای سایت خودم یک پست تایپ سفارشی و یک دسته بندی سفارشی ایجاد کردم. ولی یک مشکلی که دارم اینه که برخی ویژگی های قالب که در نوشته های عادی وردپرس وجود دارند در پست تایپ سفارشی که من ایجاد کردم نیستند. چطور میتونم این ویژگی ها رو به پست تایپ سفارشی خودم اضافه کنم؟

کدی که باهاش پست تایپ رو ایجاد کردم میذارم. ویژگی های دیفالت وردپرس در خط supports اضافه میشن ولی ویژگی های قالب رو من یه چندتا اسم هم امتحان کردم جواب نداد. مثلا بخش تنظیمات نمایش پست که برای قالب هست یا همین تنظیمات که در بخش دسته بندی هست هیچ کدوم نمایش داده نمی شوند. قالبی هم که دارم استفاده می کنم jannah هست. ممنون میشم در این مورد کمکم کنید.

//افزودن پست تایپ دانشنامه
if ( ! function_exists('custom_post_type') ) {

// Register Custom Post Type
function custom_post_type() {

	$labels = array(
		'name'                  => 'دانشنامه‌ها',
		'singular_name'         => 'دانشنامه',
		'menu_name'             => 'دانشنامه‌ها',
		'name_admin_bar'        => 'دانشنامه',
		'archives'              => 'آرشیو پست‌ها',
		'attributes'            => 'ویژگی‌ها',
		'parent_item_colon'     => 'نوشته والد:',
		'all_items'             => 'همه‌ی نوشته‌ها',
		'add_new_item'          => 'افزودن نوشته جدید',
		'add_new'               => 'افزودن دانشنامه',
		'new_item'              => 'پست جدید',
		'edit_item'             => 'ویرایش',
		'update_item'           => 'بروزرسانی',
		'view_item'             => 'مشاهده نوشته',
		'view_items'            => 'مشاهده نوشته‌ها',
		'search_items'          => 'جستجو نوشته',
		'not_found'             => 'یافت نشد!',
		'not_found_in_trash'    => 'چیزی در زباله‌دان یافت نشد.',
		'featured_image'        => 'تصویر شاخص',
		'set_featured_image'    => 'انتخاب تصویر شاخص',
		'remove_featured_image' => 'حذف تصویر شاخص',
		'use_featured_image'    => 'استفاده به عنوان تصویر شاخص',
		'insert_into_item'      => 'وارد کردن به نوشته',
		'uploaded_to_this_item' => 'به این پست آپلود شد.',
		'items_list'            => 'لیست نوشته‌ها',
		'items_list_navigation' => 'فهرست ناوبری',
		'filter_items_list'     => 'فیلتر لیست نوشته‌ها',
	);
	$rewrite = array(
		'slug'                  => 'biopedia',
		'with_front'            => true,
		'pages'                 => true,
		'feeds'                 => true,
	);
	$args = array(
		'label'                 => __( 'دانشنامه', 'text_domain' ),
		'description'           => __( 'دانشنامه زیست شناسی', 'text_domain' ),
		'labels'                => $labels,
		'supports'              => array( 'title', 'editor', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', 'post-formats', 'author' ),
		'taxonomies'            => array( 'post_tag' ),
		'hierarchical'          => false,
		'public'                => true,
		'show_ui'               => true,
		'show_in_menu'          => true,
		'menu_position'         => 5,
		'menu_icon'             => 'dashicons-admin-site',
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'Breadcrumb'            => true,
		'map_meta_cap'          => true,
		'can_export'            => true,
		'has_archive'           => true,
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'rewrite'               => $rewrite,
		'capability_type'       => 'post',
	);
	register_post_type( 'bio_pedia', $args );

}
add_action( 'init', 'custom_post_type', 0 );

}

//افزودن دسته‌ها به دانشنامه
if ( ! function_exists( 'biopedia' ) ) {

// Register Custom Taxonomy
function biopedia() {

	$labels = array(
		'name'                       => 'دسته‌ها',
		'singular_name'              => 'دسته',
		'menu_name'                  => 'دسته‌ها',
		'all_items'                  => 'همه دسته‌ها',
		'parent_item'                => 'دسته والد',
		'parent_item_colon'          => 'دسته والد:',
		'new_item_name'              => 'نام',
		'add_new_item'               => 'افزودن',
		'edit_item'                  => 'ویرایش دسته',
		'update_item'                => 'بروزرسانی',
		'view_item'                  => 'مشاهده',
		'separate_items_with_commas' => 'دسته‌ها را با کاما جدا کنید',
		'add_or_remove_items'        => 'افزودن یا حذف دسته',
		'choose_from_most_used'      => 'انتخاب از دسته‌های بیشتر استفاده شده',
		'popular_items'              => 'دسته‌های محبوب',
		'search_items'               => 'جستجو دسته‌ها',
		'not_found'                  => 'یافت نشد!',
		'no_terms'                   => 'دسته‌ای وجود ندارد.',
		'items_list'                 => 'لیست دسته‌ها',
		'items_list_navigation'      => 'فهرست ناوبری دسته‌ها',
	);
	$rewrite = array(
		'slug'                       => 'biopedia-cat',
		'with_front'                 => true,
		'hierarchical'               => false,
	);
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => true,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => true,
		'show_tagcloud'              => true,
		'rewrite'                    => $rewrite,
		'show_in_rest'               => true,
	);
	register_taxonomy( 'biopedia_cat', array( 'bio_pedia' ), $args );

}
add_action( 'init', 'biopedia', 0 );

}

 

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

سلام 

معمولا اینجور تنظیمات با متاباکس اضافه میشند.

این کد به صورت پیش فرض برای شما امکانات پوسته رو به پست تایپ شما اضافه نمیکنه . 

شما باید خود پوسته رو بررسی کنید . و ببینین از چه متاباکس هایی اضافه میکنه . اگر روی php تسلط نداشته باشین یه مقدار کارتون سخت هست برای انجام دادن این کار. 

اما در نهایت میتونین توابع متاباکس رو در مستندات وردپرس جستجو کنین . 

لینک به ارسال
در 13 ساعت قبل، دنیای وردپرس گفته است :

سلام 

معمولا اینجور تنظیمات با متاباکس اضافه میشند.

این کد به صورت پیش فرض برای شما امکانات پوسته رو به پست تایپ شما اضافه نمیکنه . 

شما باید خود پوسته رو بررسی کنید . و ببینین از چه متاباکس هایی اضافه میکنه . اگر روی php تسلط نداشته باشین یه مقدار کارتون سخت هست برای انجام دادن این کار. 

اما در نهایت میتونین توابع متاباکس رو در مستندات وردپرس جستجو کنین . 

سلام 

در این مورد شما میتونید کمک کنید من خودم با php خیلی آشنایی ندارم و معمولا از منابع سطح اینترنت برای رفع نیازهام استفاده می کنم.

اگر در این مورد میتونید کمک کنید لطفا یک راه ارتباطی بگین (مثلا آی دی تلگرام یا ایمیل) تا باهاتون تماس بگیرم در صورتی که هزینه ای هم مد نظرتون باشه باهم صحبت می کنیم.

خیلی ممنون از پاسخ گویی تشکر فراوان

لینک به ارسال
در 23 ساعت قبل، دنیای وردپرس گفته است :

سلام 

معمولا اینجور تنظیمات با متاباکس اضافه میشند.

این کد به صورت پیش فرض برای شما امکانات پوسته رو به پست تایپ شما اضافه نمیکنه . 

شما باید خود پوسته رو بررسی کنید . و ببینین از چه متاباکس هایی اضافه میکنه . اگر روی php تسلط نداشته باشین یه مقدار کارتون سخت هست برای انجام دادن این کار. 

اما در نهایت میتونین توابع متاباکس رو در مستندات وردپرس جستجو کنین . 

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

مثل همین موارد دیفالت وردپرس میشه با اضافه کردن اسمشون تو بخش suppors اضافشون کرد یا نه؟

لینک به ارسال
در 42 دقیقه قبل، ach1992 گفته است :

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

مثل همین موارد دیفالت وردپرس میشه با اضافه کردن اسمشون تو بخش suppors اضافشون کرد یا نه؟

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

https://www.smashingmagazine.com/2011/10/create-custom-post-meta-boxes-wordpress/

لینک به ارسال
در 10 دقیقه قبل، دنیای وردپرس گفته است :

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

https://www.smashingmagazine.com/2011/10/create-custom-post-meta-boxes-wordpress/

سلام

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

الان یه مشکل کوچیک دارم اگر راهنمایی کنید خیلی عالی میشه:

		function secondry_title(){

			$post_id = get_the_id();

			if( ( ! empty( $post_id ) && get_post_type( $post_id ) != 'post' ) || get_current_screen()->post_type != 'post' ){
				return;
			}

			?>

این بخش از کد هست اسم پست تایپ سفارشی من bio_pedia  است میخوام به این تکه کد اضافه کنم تا تیتر دوم هم به پست تایپم اضافه بشه الان اگر bio_pedia رو دقیقا بذارم جای کلمات post این به پست تایپ من اضافه میشه ولی از پست تایپ دیفالت حذف میشه چون با کد php آشنایی ندارم نمیدونم قانون اضافه کردن این چجوریه. ممنون میشم در این مورد راهنمایی کنید. یه چند تا روش هم امتحان کردم ولی ارور میده: مثلا اومدم به شکل زیر نوشتم:

		function secondry_title(){

			$post_id = get_the_id();

			if( ( ! empty( $post_id ) && get_post_type( $post_id ) != 'post', 'bio_pedia' ) || get_current_screen()->post_type != 'post', 'bio_pedia' ){
				return;
			}

			?>

 

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

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

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

 

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

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

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

 

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

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

لینک به ارسال

ببینید من تابع متاباکس رو یه بار شما مرور میکنم : 

add_meta_box(
    'custom_meta_box', // $id
    'Custom Meta Box', // $title 
    'show_custom_meta_box', // $callback
     $post_types,
    'normal', // $context
    'high' // $priority
);

اون قسمتی که نوشته $post_types در اصل میتونه پست تایپ یا پست تایپ های شما باشه . 

حالا ممکنه تو قالب شما همچین شکلی باشه : 

add_meta_box(
    'custom_meta_box', // $id
    'Custom Meta Box', // $title 
    'show_custom_meta_box', // $callback
     'post',
    'normal', // $context
    'high' // $priority
);

که شما میتونین به این شکل بزارین و تست بگیرین : 

add_meta_box(
    'custom_meta_box', // $id
    'Custom Meta Box', // $title 
    'show_custom_meta_box', // $callback
     array('post','bio_pedia'),
    'normal', // $context
    'high' // $priority
);

 

لینک به ارسال

اره این بخشش رو انجام دادم و اوکی شد یعنی الان تو ویرایشگر من متاباکس مربوط به تنظیمات قالب رو دارم. ولی مسئله اینه که وقتی سیو میکنم این تنظیمات در بخش فرونت نمایش داده نمیشن انگار قالب پشتیبانی نمیکنه. 

اون بخشی هم که برای تیتر دوم پرسیدم بخش add_meta_box انجام شده ولی باید اون بخشی هم که گفتم انگار اضافه بشه تا تیتر دوم در ویرایشگر نمایش داده بشه.

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

https://codex.wordpress.org/Post_Type_Templates 

این لینک رو مطالعه کنین . چون شما متاباکس رو برای پست تایپ bio_pedia اضافه کردین . ولی هیچ تمپلیتی وجود نداره که کدهای اون رو برای نمایش اطلاعات بخونه .

قطعا تو قالبتون این تمپلیت ها رو دارین : 

archive-{post_type}.php

single-{post_type}.php

میتونین کدهای اون رو ببینین یا کپی کنین تو قالب پست تایپ bio_pedia که میشه همچین فایلی : 

single-bio_pedia.php

لینک به ارسال

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

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

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

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

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

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

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

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

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