انجمن


مشکل دسته و register_post_type  (۷ نوشته)

  • بهروز ازند

    آفلاین
    عضو
    تعداد نوشته‌ها: ۵۱۹
    تشکر شده: ۷۹۹ بار
    # نوشته شده: ۱۲ سال پیش
    ۵ مرداد ۱۳۹۰ - ۰۰:۳۱

    با تابع register_post_type مطلب دلخواه رو ایجاد کردم و آرگومانهای تابع رو هم وارد کردم
    حالا مشکل اینجاست که میخوام تو فایل category.php این پستهای دلخواه همراه با پستهای اولیه وردپرس نمایش داده بشن
    مثلا اگه موضوع یک مطلب " آنتی ویروس " باشه اون رو به راحتی از طریق فایل category.php نشون میده
    ولی اگه این مطلب از نوع مطلب دلخواه (post_type ) باشه و در همون دسته " آنتی ویروس " ثبت بشه این وطلب در صفحه اون دسته نشون داده نمیشه
    حالا چطور اون حلقه رو تغییر بدم تا این پستهای دلخواه هم در کنار پست های اصلی نمایش داده بشن
    اینم کدای ثبت اون مطلب دلخواه

    <?php
    	add_action('init', 'create_portfolio');
    	function create_portfolio() {
        	$portfolio_args = array(
            	'label' => __('Portfolio'),
            	'singular_label' => __('Portfolio'),
            	'public' => true,
            	'show_ui' => true,
            	'capability_type' => 'post',
            	'hierarchical' => false,
            	'rewrite' => true,
    			'taxonomies' => array('category'),
            	'supports' => array('title', 'editor', 'thumbnail')
            );
        	register_post_type('portfolio',$portfolio_args);
    	}
    ?>
  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۴ بار
    # نوشته شده: ۱۲ سال پیش
    ۵ مرداد ۱۳۹۰ - ۰۰:۴۷

    اصولا فلسفه‌ی ایجاد انواع دلخواه نوشته (custom post types) اینه که با نوشته‌های معمولی قاطی نشن و جدا باشن.

    شما از چه تابع یا کوئری برای نمایش دسته‌ها استفاده می‌کنین؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    بهروز ازند - Mostafa
  • بهروز ازند

    آفلاین
    عضو
    تعداد نوشته‌ها: ۵۱۹
    تشکر شده: ۷۹۹ بار
    # نوشته شده: ۱۲ سال پیش
    ۵ مرداد ۱۳۹۰ - ۲۲:۵۵

    اره به نظرم خودمم این سوال از بیخ و بن بهش ایراد وارده
    ولی حالا اگه همچین چیزی رو بخواهیم که نشد نداره که
    تو برگه category.php یه حلقه ساده وجود داره

    <?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
    <?php else : ?><?php endif; ?>

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

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۴ بار
    # نوشته شده: ۱۲ سال پیش
    ۶ مرداد ۱۳۹۰ - ۰۹:۰۱

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

    <?php
    	$args = array( 'post_type' => array('product','portfolio'), 'category_name'=>'antivirus', 'numberposts' => -1);
    	$posts = get_posts($args);
    	if ($posts) {
    		foreach ( $posts as $p ) {
    			echo $p->post_title;
    		}
    	}
    ?>

    این دستورات نوشته‌هایی با نوع product و portfolio رو از دسته‌ی antivirus نمایش می‌دن.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    بهروز ازند - Morteza
  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۴ بار
    # نوشته شده: ۱۲ سال پیش
    ۸ مرداد ۱۳۹۰ - ۱۸:۰۹

    مشکل‌تون حل شد؟

  • بهروز ازند

    آفلاین
    عضو
    تعداد نوشته‌ها: ۵۱۹
    تشکر شده: ۷۹۹ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ مرداد ۱۳۹۰ - ۱۳:۱۲

    این کدایی که دادی جالب بود ممنون
    و این کد برای فایل category-antivirus.php عالی کار میکنه باید به جای
    array('product','portfolio')
    از این
    array('product','post')
    استفاده بشه تا در فایل category-antivirus.php عنوان پستهای اصلی با مطالب دلخواه نمایش داده بشه
    حالا برای فایل category.php باید چه کرد؟

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۴ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۶ مرداد ۱۳۹۰ - ۲۱:۰۰

    باید شناسه‌ی دسته رو به دست بیارین و توی کوئری به‌جای نام دسته، از شناسه‌ی دسته استفاده کنین.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Morteza - بهروز ازند

درباره‌ی این موضوع