راهنمایی در مورد پست تایپ وردپرس

سوال

با عرض سلام

دوستان عزیز یه سوال داشتم و ممنون میشم راهنمایی کنید
من یک پست تایپ جدید ساختم با نام product و میتونم داخلش نوشته ایجاد کنم

1. من با نوشته های اصلی وردپرس یک مطلب ایجاد میکنم.
2. با پست تایپ جدید هم یک مطلب ایجاد میکنم.
3. با افزونه زمینه دلخواه acf به این پست تایپ جدید یک فیلد اضافه کردم (آبجکت یک نوشته) که باهاش میتونم از بین مطالب وردپرس یک نوشته انتخاب کنم.

حالا من میخوام با پست تایپ جدید که مثلا 10 عدد مطلب ایجاد کردم و همه رو گذاشتم مربوط به یک نوشته خاص, اون 10 عدد پست تایپ ایجاد شده رو در صفحه single.php زیر اون نوشته خاص نمایش بدم؟

ممنون میشم اگه راهنمایی کنید.

در حال بررسی 0
2022-02-04T13:40:12+03:30 2 پاسخ کاربر تازه 0

پاسخ ها ( 2 )

    1
    2022-02-04T18:38:44+03:30

    سلام دوست عزیز

    وقتی post-type می سازید که باید یک برگه نمایش، آرشیو، دسته بندی و … هم به نام همون پست تایپ بسازید.

    مثلا شما الان پست تایپ به نام product ساختید، برگه های زیر ر هم باید بسازید:

    single-product.php

    category-product.php

    archive-product.php

    و …

    ساختید یا نه اطلاعی ندارم، ولی حتما باید ساخته باشید تا پست های مربوط به پست تایپ رو بتونید نمایش بدید.

    منظورتون رو از نوشته خاص متوجه نشدم؛ ولی با حلقه ی زیر میتونید 10 پست آخر پست تایپ product رو نمایش بدید، این کد رو هر جایی میتونید بزارید:

    <?php  
    $args = array( 'post_type' => 'product', 'posts_per_page' => 10 );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <div class="content">
    <?php the_title(); 
    if ( has_post_thumbnail( $post->ID ) ) {
    echo '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( $post->post_title ) . '">';
    echo get_the_post_thumbnail( $post->ID, 'thumbnail' );
    echo '</a>'; }
    ?>
    </div>
    <?php endwhile; ?>

    موفق باشید.

      0
      2022-02-04T20:25:35+03:30
      این پاسخ ویرایش شد.

      از پاسخ و راهنمایی شما متشکرم

      بله همه فایل ها رو ایجاد کردم. سایت تست من: ufoo.ir

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

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

      شما راهی دارید؟

       

      (کاری که من کردم: داخل افزونه acf یک فیلد پیدا کردم به نام (آبجکت یک نوشته) که به پست تایپ product یک فیلد اضافه میکنه که میشه از بین نوشته ها (پست تایپ اصلی) یکی رو انتخاب کرد.

      حالا چطوری باید در سایتم به شکلی که گفتم نمایشش بدم؟)

       

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

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

       

      غیر از مورد بالا, این 3 رو هم میشه اجرا کرد؟

       

      1. یک فیلد قیمت (عددی) هم دارم که میشه این پست تایپ های جدید رو بشکلی نمایش داد که مثلا اگر عدد اون فیلد کمتر بود بالاتر از بقیه نمایش داده بشه؟

      2. رنج قیمتی هر محصول نمایش داده بشه, مثلا: یک فیلد بوده 100 و دیگری 200 و یکی دیگه 300, داخل محصول نمایش بدم: قیمت از 100 تا 300 تومان, یعنی کمترین عدد و بیشترین عدد درج شده در فیلد.

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

       

      این موارد همه در سایت ترب هست.

    0
    2022-02-05T20:18:38+03:30

    در صفحه single.php یا یک صفحه نوشته دیدید که نوشته های مرتبط رو بر اساس دسته بندی یا تگ میایم و نشون میدیم

    حالا شما دقیقا همین کار رو باید بجای اینکه نوشته های خود وردپرس که پست تایپ post هستن نمایش داده بشه. باید بیاید و اون مطالبی رو از پست تایپ product نمایش بدید که دسته بندی یا برچسب هاشون با مطلبی که داره نشون داده میشه یکسان باشه.

    کد زیر بر اساس دسته بندی، مطالب پست تایپ رو نشون میده(فایل single.php) :

    <?php
    $related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5,'post_type' => 'product', 'post__not_in' => array($post->ID) ) );
    if( $related ) foreach( $related as $post ) {
    setup_postdata($post); ?>
            <li>
            <?php  the_post_thumbnail(); ?>
            <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
    
            </li>
    
    <?php }
    wp_reset_postdata(); ?>

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

    موفق باشید.

ارسال یک پاسخ