نماد سایت بیگ تم

ساخت post type سفارشی در وردپرس

ساخت post type سفارشی در وردپرس

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

هک وردپرس:ساخت post type سفارشی در وردپرس

مقدمه:

پست تایپ های سفارشی دقیقا مشابه پست ها و صفحات سایته.شما می تونید پست تایپ هارو بسازید و هر زمانی که خواستید از اونا استفاده کنید.به عنوان مثال اگه شما سایت فیلم و ویدیو داریدنیاز دارید که پست تایپی رو برای بازبینی فیلم هاتون بسازید.در پست تایپ ها فیلد های سفارشی به همراه دسته بندی های خاصی وجود داره.نمونه ای از پست تایپ ها ، پورتفولیو وردپرس  هست که چندی پیش به معرفی و شیوه استفاده از اون پرداختیم.

آموزش ساخت پست تایپ سفارشی:

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

function my_custom_post_product() {$args = array();register_post_type( 'product', $args ); }add_action( 'init', 'my_custom_post_product' );

بعد از درج کد مجددا وراد داشبورد وردپرس شید.همون طور که میبینید تغییر خاصی رخ نداده و نیاز داریم که مطابق نمونه دستور رو فعال کنیم:

در مثال بالا بخش های general name رو مطابق با نامی که در نظر دارید جایگزین کنید.

/** Creating a function to create our CPT*/function custom_post_type() {// Set UI labels for Custom Post Type$labels = array('name' => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),'singular_name' => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),'menu_name' => __( 'Movies', 'twentythirteen' ),'parent_item_colon' => __( 'Parent Movie', 'twentythirteen' ),'all_items' => __( 'All Movies', 'twentythirteen' ),'view_item' => __( 'View Movie', 'twentythirteen' ),'add_new_item' => __( 'Add New Movie', 'twentythirteen' ),'add_new' => __( 'Add New', 'twentythirteen' ),'edit_item' => __( 'Edit Movie', 'twentythirteen' ),'update_item' => __( 'Update Movie', 'twentythirteen' ),'search_items' => __( 'Search Movie', 'twentythirteen' ),'not_found' => __( 'Not Found', 'twentythirteen' ),'not_found_in_trash' => __( 'Not found in Trash', 'twentythirteen' ),);// Set other options for Custom Post Tye$args = array('label' => __( 'movies', 'twentythirteen' ),'description' => __( 'Movie news and reiews', 'twentythirteen' ),'labels' => $labels,// Features this CPT supports in Post Editor'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),// You can associate this CPT with a taxonomy or custom taxonomy. 'taxonomies' => array( 'genres' ),/* A hierarchical CPT is like Pages and can have* Parent and child items. A non-hierarchical CPT* is like Posts.*/ 'hierarchical' => false,'public' => true,'show_ui' => true,'show_in_menu' => true,'show_in_nav_menus' => true,'show_in_admin_bar' => true,'menu_position' => 5,'can_export' => true,'has_archive' => true,'exclude_from_search' => false,'publicly_queryable' => true,'capability_type' => 'page',);// Registering your Custom Post Typeregister_pos_type( 'movies', $args );}/* Hook into the 'init' action so that the function* Containing our post type registration is not * unnecessarily executed. */add_ction( 'init', 'custom_post_type', 0 );

در این بخش ،آیتم هایی رو مثل برچسب ها،آرشیو،پشتیبانی و یه سری توضیحات رو میتونید داشته باشید.

ساخت متاباکس سفارشی:

در حین نوشتن یک مطلب شما همه ی محتوا رو در اخل کادر نوشته قرار میدید.اما وجود یه بکس جداگانه برای درج جزییات محتوا می تونه خیلی کارساز باشه.مثلا شما محصولی رو معرفی می کنید و اطلاعات اضافی سازنده رو در باکسی جدا به منظور نظم بیشتر قرار میدید.

بدین منظور از دستور زیر استفاده می کنیم:

add_action( 'add_meta_boxes', 'product_price_box' );function product_price_box() {add_meta_box('product_price_box',__( put source, 'myplugin_textdomain' ),'product_price_box_content','product','side','high');}

برای تعیین محتوای باکس از کد زیر استفاده کنید:

function product_price_box_content( $post ) {wp_nonce_field( plugin_basename( __FILE__ ), 'product_price_box_content_nonce' );echo '<label for="product_price"></label>';echo '<input type="text" id="product_price" name="product_price" placeholder="enter a price" />';}

نمایش مطالب post type در قالب:

بدین منظور کد رو در مکانی که مایلید نمایش داده شه قرار بدید.

<?php$args = array( 'post_type' => '<strong>product</strong>', 'posts_per_page' => 10 );$loop = new WP_Query( $args );while ( $loop->have_posts() ) : $loop->the_post();the_title();echo '<div>';the_post_thumbnail();echo '</div>';endwhile;wp_reset_query();?>

موفق باشید

منبع:بیگ تم

خروج از نسخه موبایل