رفتن به مطلب

نمایش پست تایپ در صفحه اصلی


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

سلام دوستان

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

گشتم پیدا نکردم کدشو..

کدی هست؟؟

لینک به ارسال

بهتر نیست مشکلتون حل میشه راه حل رو بزارید تا دوستان دیگه هم استفاده کنن؟ :ph34r:

راهش قرار دادن این تابع و اکشن در functions.php است


add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if (!is_home() && $query->is_main_query() ) {
$query->set( 'post_type', array( 'post', 'my_post_type') );
}
return $query;
}

این اکشن مطالب پست تایپ my_post_type را هم در صفحات اصلی نمایش می ده

لینک به ارسال

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

ولی من یک کدی دارم که تو قالبم آخرین مطالب رو بر اساس دسته نشون میده و با آیدی دسته کار میکنم

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

چیکار کنم که دسته بندیه پست تایپمو نشون بده مطالبشو؟؟

لینک به ارسال

منظورتون از دسته بندی پست تایپ رو دقیق متوجه نشدم

در تعاریف پست تایپ


'publicly_queryable' => true,
'rewrite' => array('slug' => 'custom-post-type'),

مربوط می شن به کوئری های نمایش

لینک به ارسال

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

حالا وقتی دسته رو ایجاد میکنم همه چی اوکی میشه ولی آیدی دسته بندی پست تایپ رو واسه نمایش مطلبش تو قالبم قرار میدم نشون نمیده مطالبشو

لینک به ارسال

این مقدار در تعریف post_type باید باشه


'publicly_queryable' => true,

و در کوئری که آی دی دسته بندی را می گذارید


'post_type' => 'my_post_type',

که کد دوم بسته به ساختار کوئریتون ممکنه شکل های دیگه هم نوشته بشه اگر نتونستید درست قرارش بدید کوئریتون رو بگذارید اینجا

لینک به ارسال

بفرمایید

// Register Custom Post Type
function custom_post_type() {
$labels = array(
'name' => _x( 'Post Types', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Post Type', 'text_domain' ),
'parent_item_colon' => __( 'Parent Item:', 'text_domain' ),
'all_items' => __( 'All Items', 'text_domain' ),
'view_item' => __( 'View Item', 'text_domain' ),
'add_new_item' => __( 'Add New Item', 'text_domain' ),
'add_new' => __( 'Add New', 'text_domain' ),
'edit_item' => __( 'Edit Item', 'text_domain' ),
'update_item' => __( 'Update Item', 'text_domain' ),
'search_items' => __( 'Search Item', 'text_domain' ),
'not_found' => __( 'Not found', 'text_domain' ),
'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ),
);
$args = array(
'label' => __( 'post_type', 'text_domain' ),
'description' => __( 'Post Type Description', 'text_domain' ),
'labels' => $labels,
'supports' => array( ),
'taxonomies' => array( 'category', 'post_tag' ),
'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',
);
register_post_type( 'post_type', $args );
}
// Hook into the 'init' action
add_action( 'init', 'custom_post_type', 0 );

و اینم کدی که واسه نمایش مطلب آیدی دسته بندیم تو ایندکس قرار میدم .. مثلا آیدی 6

<div class="last_posts">
<div class="last_posts_top"><h4 class="last_post">آخرین مطالب سایت
</h4></div>
<div class="last_posts_body">
<ul>
<?php
$my_query = new WP_Query('showposts=5&cat=6&offset=0');
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
</div>
</div>

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

این خط از کدهای نمایش


$my_query = new WP_Query('showposts=5&cat=6&offset=0');

رو بیابید و تبدیل کنید به


$my_query = new WP_Query('post_typ=post_type&showposts=5&cat=6');

اگر کدهاتون عینا همینه نام post_type نام مناسبی نیست و ممکنه تداخل ایجاد کنه یک نام دیگه براش بگذارید مثل my_blog

-

لینک به ارسال

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

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

ساختمو انتخاب میکنم مطلب نشون داده میشه حالا همین مطلبو وقتی تو پست تایپم ایجاد میکنم و دسته بندیشو انتخاب میکنم نشون نمیده؟؟!!!

مشکل از کجاشه؟؟ مشکله من همینه الان نه با نمایش مطلب

از کدی که شما تو آموزش گفتید استفاده کردم .. این کد :

<?php
add_action( 'init', 'gallery_post_type', 0 );
function gallery_post_type() {
$args = array(
'label' => __( 'Gallery', 'wp_parsi' ),
'description' => __( 'Gallery Description', 'wp_parsi' ),
'labels' => $labels,
'supports' => array( 'title', 'editor','thumbnail', 'excerpt', 'custom-fields', 'comments', 'page-attributes' ),
'hierarchical' => true,
'taxonomies' => array('category', 'tag'),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => false,
'menu_position' => 5,
'menu_icon' => get_bloginfo('template_directory').'/images/gallery_post_type.png',
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'rewrite' => array('slug' => 'gallery'),
'capability_type' => 'page',
);
$labels = array(
'name' => _x( 'Galleries', 'Post Type General Name', 'wp_parsi' ),
'singular_name' => _x( 'Gallery', 'Post Type Singular Name', 'wp_parsi' ),
'menu_name' => __( 'Gallery', 'wp_parsi' ),
'parent_item_colon' => __( 'Parent Item:', 'wp_parsi' ),
'all_items' => __( 'All Galleries', 'wp_parsi' ),
'view_item' => __( 'View Gallery', 'wp_parsi' ),
'add_new_item' => __( 'Add New Gallery', 'wp_parsi' ),
'add_new' => __( 'Add New', 'wp_parsi' ),
'edit_item' => __( 'Edit Gallery', 'wp_parsi' ),
'update_item' => __( 'Update Gallery', 'wp_parsi' ),
'search_items' => __( 'Search Gallery', 'wp_parsi' ),
'not_found' => __( 'Not found', 'wp_parsi' ),
'not_found_in_trash' => __( 'Not found in Trash', 'wp_parsi' ),
);
register_post_type( 'gallery_post_type', $args );
}
?>

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

تست کنید


<div class="last_posts">
<div class="last_posts_top"><h4 class="last_post">آخرین مطالب سایت
</h4></div>
<div class="last_posts_body">
<ul>
<?php
$my_query = new WP_Query('post_type=galery_post_type&showposts=5');
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
</div>
</div>

لینک به ارسال

تو کدی که دادید دسته ها کجان پس؟؟

دسته هارو اینجوری اضاف کردم بازم نمایش نمیده :

$my_query = new WP_Query('post_type=galery_post_type&showposts=5&cat=18');

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

شما اون کد رو قرار بدید و تست کنید نتیجه را بگید تا مشخص بشه مشکل از کجاست

لینک به ارسال

این کد را بجای کوئریتون تست کنید (بجای 4 آی دی دسته بندیتون رو بگذارید)


<?php
$custom_query = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'gallery_post_type',
'order' =>'DESC',
'orderby' =>'ID',
'cat' =>'4',
'posts_per_page' =>'5',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($custom_query->have_posts()) :
echo '<ul>';
while($custom_query->have_posts()) : $custom_query->the_post();
the_title( sprintf( '<li><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></li>' );
endwhile;
echo '</ul>';
else :
echo '<h4 class="alert">هیچ مطلبی وجود ندارد</h4>';
endif;
wp_reset_query(); ?>

لینک به ارسال

استاد ممنون حل شد مشکلم از این کد بود؟؟

رایتی اسم پست تایپمو چطور میتونم تغییر بدم؟؟ کدوم گزینست؟؟

میتونم مقادیر gallery رو به myblog تغییر بدم؟؟

این کد پست تایپمه اگه میشه برام درستش کنید مبتدیم نمیدونم چجوریه

<?php
add_action( 'init', 'gallery_post_type', 0 );
function gallery_post_type() {
$args = array(
'label' => __( 'Gallery', 'wp_parsi' ),
'description' => __( 'Gallery Description', 'wp_parsi' ),
'labels' => $labels,
'supports' => array( 'title', 'editor','thumbnail', 'excerpt', 'custom-fields', 'comments', 'page-attributes' ),
'hierarchical' => true,
'taxonomies' => array('category', 'tag'),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => false,
'menu_position' => 5,
'menu_icon' => get_bloginfo('template_directory').'/images/gallery_post_type.png',
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'rewrite' => array('slug' => 'gallery'),
'capability_type' => 'page',
);
$labels = array(
'name' => _x( 'Galleries', 'Post Type General Name', 'wp_parsi' ),
'singular_name' => _x( 'Gallery', 'Post Type Singular Name', 'wp_parsi' ),
'menu_name' => __( 'Gallery', 'wp_parsi' ),
'parent_item_colon' => __( 'Parent Item:', 'wp_parsi' ),
'all_items' => __( 'All Galleries', 'wp_parsi' ),
'view_item' => __( 'View Gallery', 'wp_parsi' ),
'add_new_item' => __( 'Add New Gallery', 'wp_parsi' ),
'add_new' => __( 'Add New', 'wp_parsi' ),
'edit_item' => __( 'Edit Gallery', 'wp_parsi' ),
'update_item' => __( 'Update Gallery', 'wp_parsi' ),
'search_items' => __( 'Search Gallery', 'wp_parsi' ),
'not_found' => __( 'Not found', 'wp_parsi' ),
'not_found_in_trash' => __( 'Not found in Trash', 'wp_parsi' ),
);
register_post_type( 'gallery_post_type', $args );
}
?>

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

استاد ممنون حل شد مشکلم از این کد بود؟؟

استاد اگه این آیتم هارو

__( 'example', 'text_domain' ),

اینجوری

__( 'مشاهده', 'text_domain' ),

وارد کنیم و text domin رو تغییر ندیم اشکال داره؟؟

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

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

<div class="leftct">
<div class="lefthead">
<div class="sidepic"></div>
<h3>مطالب ویژه</h3>
</div>
<?php
$my_query = new WP_Query('showposts=5&cat=1&offset=0');
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;?>
<div class="clear"></div>
<?php the_post_thumbnail('sidepic'); ?>
<div class="contentc">
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
</div>
<?php endwhile; ?>
</div>

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

نه مشکلی نیست بجز اینکه یک کوئری اضافی بین سایت و موتور وردپرس برای تکست دامین ها ایجاد می کنید که چند صدم ثانیه توی لود موثره


<div class="leftct">
<div class="lefthead">
<div class="sidepic"></div>
<h3>مطالب ویژه</h3>
</div>
<?php
$custom_query = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'gallery_post_type',
'order' =>'DESC',
'orderby' =>'ID',
'cat' =>'4',
'posts_per_page' =>'5',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($custom_query->have_posts()) :
while($custom_query->have_posts()) : $custom_query->the_post();
echo "<div class=\"clear\"> </div>\n";
the_post_thumbnail('sidepic');
echo "<div class=\"contentc\">\n";
the_title( sprintf( '<p><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></p>' );
echo "</div>";
endwhile;
else :
echo '<h4 class="alert">هیچ مطلبی وجود ندارد</h4>';
endif;
wp_reset_query(); ?>
</div>

برای تغییر نام پست تایپ gallery_post_type را به نام دلخواه با شرایطی که در آموزش قید شده تبدیل کنید

لینک به ارسال

این کد استایلش تغییری نکرده مشکل از استایل دهیتونه و الا دایو ها و کلاس ها همون ها هستند

لینک به ارسال

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

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

لینک به ارسال

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

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

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

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

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

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

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

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

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