ach1992

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

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

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

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

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

کدی که باهاش پست تایپ رو ایجاد کردم میذارم. ویژگی های دیفالت وردپرس در خط 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
0

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


لینک به پست

سلام 

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

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

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

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

0

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


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

سلام 

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

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

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

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

سلام 

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

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

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

0

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


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

سلام 

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

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

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

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

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

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

0

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


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

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

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

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

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

0

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


لینک به پست

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

در 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
0

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


لینک به پست

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

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

 

0

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


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

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

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

 

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

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

0

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


لینک به پست

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

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
);

 

0

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


لینک به پست

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

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

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

ویرایش شده در توسط ach1992
0

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


لینک به پست

https://codex.wordpress.org/Post_Type_Templates 

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

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

archive-{post_type}.php

single-{post_type}.php

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

single-bio_pedia.php

1

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط maraljoon
      سلام و درود.
      دوستان گرامی. یک مشکل در ساخت حلقه برای یک پست تایپ سفارشی دارم و نمیدونم چطور بسازمش تا پست های مربوطه رو نمایش بده.
      پست تایپ به اسم book هست  و taxonomy خاص موجود در book هم اسمش new هست.
      چطور میشه حلقه ای ساخت که مطالب موجود در این پست تایپ رو نمایش بده؟
      ممنون میشم از همراهیتون.. پاینده باشید