رفتن به مطلب

کد نمایش محصولات مرتبط در بین مطالب سایت


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

سلام دوستان

چگونه میتونم یکسری محصولات مرتبط با دسته بندیرا بین مطالب (پست) قرار بدم؟

مثلا براش تعریف کنیم برای مطالب دسته بندی با ای دی 15 محصولات دسته بندی با ایدی 50 نمایش بده و برای مطالب دسته بندی با ای دی 10 محصولات دسته بندی با ایدی 52 نمایش بده و ...

افزونه نمیخوام

بصورت کد باشه

 

لینک به ارسال

سلام

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

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

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

 

 

 

لینک به ارسال
در 2 ساعت قبل، zarcod گفته است :

سلام

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

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

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

 

 

 

تشکر از پاسختون

چون ما میخواهیم محصولات دسته بندی های مختلف را بصورت رندوم نمایش بدیم تنها راه اینه بصورت کدنویسی باشه و با توجه به اینکه 10 دسته بندی مطلب و فروشگاهی نداریم بهتره برای نمایش محصولات مرتبط با هر دسته بندی مطلب اونارو بصورت دستی کددهی کنیم.

مثلا براش تعریف کنیم برای مطالب دسته بندی با ای دی 15 محصولات دسته بندی با ایدی 50 نمایش بده و برای مطالب دسته بندی با ای دی 10 محصولات دسته بندی با ایدی 52 نمایش بده و ...

لینک به ارسال
در 10 ساعت قبل، zarcod گفته است :

میتوانید با متا باکس ها id رو در صفحه محصول از کاربر بگیرید و داخل کوئری که میزنید از آن استفاده کنید و اینطوری میتوانید بصورت دستی هر محصول را جدا گانه شخصی سازی کنید.

خوب کد اینایی که گفتی لازم دارم :rolleyes:

لینک به ارسال
در در ۱۴۰۰/۴/۲۷ در 13:28، ahmad4u گفته است :

چون ما میخواهیم محصولات دسته بندی های مختلف را بصورت رندوم نمایش بدیم تنها راه اینه بصورت کدنویسی باشه و با توجه به اینکه 10 دسته بندی مطلب و فروشگاهی نداریم بهتره برای نمایش محصولات مرتبط با هر دسته بندی مطلب اونارو بصورت دستی کددهی کنیم.

خب در این صورت بهترین راه استفاده از حلقه معمول هست، فقط آرگومان ها رو با دستورات شرطی برای هر دسته بندی تغییر میدید

https://developer.wordpress.org/reference/classes/wp_query/

 

لینک به ارسال

این کد را داخل فایل فانکشن بگذارید

add_action('add_meta_boxes','meta_idprod_related');
add_action('save_post' , 'save_meta_id_related');
function meta_idprod_related(){
    $qpid= array('product');
    foreach ($qpid as $qid) {
        add_meta_box('id_rel_product', 'آی دی محصول مرتبط ', 'related_id_product', $qid, 'side', '');

    }
}
function related_id_product($post){
    
    $relat=get_post_meta($post ->ID,'id_rel',true);
		?> 
     <input class="input " name="txt_id_rel" type="text" value="<?php  echo $relat?>" />
<?php
}
function save_meta_id_related($post_id){
   
    if (isset($_POST['txt_id_rel']) && !empty($_POST['txt_id_rel'])){
        update_post_meta($post_id , 'id_rel',sanitize_text_field($_POST['txt_id_rel']));
}
} 

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

 

	<?php
	$relat=get_post_meta($post ->ID,'id_rel',true);
    $qprod = new WP_Query(array(
        'post_type' => 'product',
        "posts_per_page" => 3,
		'product_cat'    =>'نامک دسته بندی',
    ));
    if ($qprod->have_posts()) :
        while ($qprod->have_posts()) : $qprod->the_post(); ?>
    <div class="post-zarcod">
        <figure class="thomb-slid">                      
        <a href="<?php the_permalink(); ?>"> <?php the_post_thumbnail(); ?> </a>
        </figure>
        <div class="title-prod-zarcod">
        <a href="<?php the_permalink(); ?>">
             <h2><?php the_title(); ?></h2>
        </a>
        </div>

    </div>
    <?php
        endwhile;
        wp_reset_postdata();
    endif; ؟>
لینک به ارسال
در 8 ساعت قبل، zarcod گفته است :

این کد را داخل فایل فانکشن بگذارید


add_action('add_meta_boxes','meta_idprod_related');
add_action('save_post' , 'save_meta_id_related');
function meta_idprod_related(){
    $qpid= array('product');
    foreach ($qpid as $qid) {
        add_meta_box('id_rel_product', 'آی دی محصول مرتبط ', 'related_id_product', $qid, 'side', '');

    }
}
function related_id_product($post){
    
    $relat=get_post_meta($post ->ID,'id_rel',true);
		?> 
     <input class="input " name="txt_id_rel" type="text" value="<?php  echo $relat?>" />
<?php
}
function save_meta_id_related($post_id){
   
    if (isset($_POST['txt_id_rel']) && !empty($_POST['txt_id_rel'])){
        update_post_meta($post_id , 'id_rel',sanitize_text_field($_POST['txt_id_rel']));
}
} 

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

 


	<?php
	$relat=get_post_meta($post ->ID,'id_rel',true);
    $qprod = new WP_Query(array(
        'post_type' => 'product',
        "posts_per_page" => 3,
		'product_cat'    =>'نامک دسته بندی',
    ));
    if ($qprod->have_posts()) :
        while ($qprod->have_posts()) : $qprod->the_post(); ?>
    <div class="post-zarcod">
        <figure class="thomb-slid">                      
        <a href="<?php the_permalink(); ?>"> <?php the_post_thumbnail(); ?> </a>
        </figure>
        <div class="title-prod-zarcod">
        <a href="<?php the_permalink(); ?>">
             <h2><?php the_title(); ?></h2>
        </a>
        </div>

    </div>
    <?php
        endwhile;
        wp_reset_postdata();
    endif; ؟>

تشکر از شما

بنظرم این کد فقط برای یک دسته بندی محصول و دسته بندی کاربرد داره و بنظرم باید طبق گفته دوستمون @asadiy4n  برای چند دساه بندی از حالت شرطی استفاده کرد

لینک به ارسال
در 1 ساعت قبل، ahmad4u گفته است :

بنظرم این کد فقط برای یک دسته بندی محصول و دسته بندی کاربرد داره و بنظرم باید طبق گفته دوستمون @asadiy4n  برای چند دساه بندی از حالت شرطی استفاده کرد

ببخشید فراموش کردم شما باید جای نامک دسته بندی $relat بگذارید و داخل متا باکس صفحه محصول که اضافه شده نامک محصول را بنویسید و ذخیره کنید بطور خودکار هر دسته بندی بخواهید میتوانید اضافه کنید.

این کد را جای کد قبلی استفاده کنید

<?php
	$relat=get_post_meta($post ->ID,'id_rel',true);
    $qprod = new WP_Query(array(
        'post_type' => 'product',
        "posts_per_page" => 3,
		'product_cat'    => $relat,
    ));
    if ($qprod->have_posts()) :
        while ($qprod->have_posts()) : $qprod->the_post(); ?>
    <div class="post-zarcod">
        <figure class="thomb-slid">                      
        <a href="<?php the_permalink(); ?>"> <?php the_post_thumbnail(); ?> </a>
        </figure>
        <div class="title-prod-zarcod">
        <a href="<?php the_permalink(); ?>">
             <h2><?php the_title(); ?></h2>
        </a>
        </div>

    </div>
    <?php
        endwhile;
        wp_reset_postdata();
    endif; ؟>

 

 

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

بنظرتون الان این کد برای سایت من که 100.000 محصول داره کاربرد داره

چون لازمه تو تک تک محصولات و متاباکسشون نامک محصول اضافه بشه

لینک به ارسال
در 11 ساعت قبل، ahmad4u گفته است :

بنظرتون الان این کد برای سایت من که 100.000 محصول داره کاربرد داره

چون لازمه تو تک تک محصولات و متاباکسشون نامک محصول اضافه بشه

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

لینک به ارسال
در 22 ساعت قبل، ahmad4u گفته است :

چون لازمه تو تک تک محصولات و متاباکسشون نامک محصول اضافه بشه

راه حلشون که خوب بود! شما دقیقا بگید میخواید چیکار کنید تا بشه راهنمایی کرد

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

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

لینک به ارسال
در 4 ساعت قبل، asadiy4n گفته است :

راه حلشون که خوب بود! شما دقیقا بگید میخواید چیکار کنید تا بشه راهنمایی کرد

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

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

مثلا براش تعریف کنیم برای مطالب دسته بندی با ای دی 15 محصولات دسته بندی با ایدی 50 نمایش بده و برای مطالب دسته بندی با ای دی 10 محصولات دسته بندی با ایدی 52 نمایش بده و ...

با قرار دادن کد مذبور یا شورت کد در بین متن پست ها ، محصولات (تعدادش  3-4 یا بصورت اسلایدری) نمایش بدیم

 

 

Screenshot 2021-07-23 at 02-57-32 40 مدل شلف ایستاده در طرح های جدید مناسب برای منازل کوچک.png

لینک به ارسال

خب در این حالت فقط به یه دستور شرطی نیاز دارید و دیگه نیازی به زمینه دلخواه نیست

if ( has_term( 'cat1', 'product_cat' ) ){
	$YourCat = 50;
}elseif( has_term( 'cat2', 'product_cat' ) ){
	$YourCat = 52;
}else{
	$YourCat = 100;
}
$args = array(
	'post_type' => 'product',
	'tax_query' => array(
          array(
              'taxonomy' => 'product_cat',
              'field' => 'id',
              'terms' => $YourCat
          )
      ),
    'posts_per_page' => 10,
);

حالا این مثال رو به هر شکلی که دوس دارید می تونید تغییر بدید

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

لینک به ارسال
در 9 ساعت قبل، asadiy4n گفته است :

خب در این حالت فقط به یه دستور شرطی نیاز دارید و دیگه نیازی به زمینه دلخواه نیست


if ( has_term( 'cat1', 'product_cat' ) ){
	$YourCat = 50;
}elseif( has_term( 'cat2', 'product_cat' ) ){
	$YourCat = 52;
}else{
	$YourCat = 100;
}
$args = array(
	'post_type' => 'product',
	'tax_query' => array(
          array(
              'taxonomy' => 'product_cat',
              'field' => 'id',
              'terms' => $YourCat
          )
      ),
    'posts_per_page' => 10,
);

حالا این مثال رو به هر شکلی که دوس دارید می تونید تغییر بدید

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

تشکر

الان این کد صورت کلی موضوع رو نشون میده

نیاز به کدی دارم که توش تعداد محصولات نمایشی بهمراه تصویر و نام اونا رو نمایش بده

لینک به ارسال
<?php
if ( has_term( 'cat1', 'product_cat' ) ){
	$YourCat = 50;
}elseif( has_term( 'cat2', 'product_cat' ) ){
	$YourCat = 52;
}else{
	$YourCat = 100;
}
$args = array(
	'post_type' => 'product',
	'tax_query' => array(
          array(
              'taxonomy' => 'product_cat',
              'field' => 'id',
              'terms' => $YourCat
          )
      ),
    'posts_per_page' => 10,
);
$query1 = new WP_Query( $args );
if ( $query1->have_posts() ): ?>
<div class="posts">
<?php while ( $query1->have_posts() ) { $query1->the_post(); ?>
	<div class="post">
      <div><?php the_post_thumbnail(); ?></div>
      <div><?php the_title(); ?></div>
    </div>
<?php }
wp_reset_postdata();
?></div><?php
endif;
?>

 

در 58 دقیقه قبل، ahmad4u گفته است :

الان این کد صورت کلی موضوع رو نشون میده

نیاز به کدی دارم که توش تعداد محصولات نمایشی بهمراه تصویر و نام اونا رو نمایش بده

 

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

لینک به ارسال
در 1 ساعت قبل، asadiy4n گفته است :

<?php
if ( has_term( 'cat1', 'product_cat' ) ){
	$YourCat = 50;
}elseif( has_term( 'cat2', 'product_cat' ) ){
	$YourCat = 52;
}else{
	$YourCat = 100;
}
$args = array(
	'post_type' => 'product',
	'tax_query' => array(
          array(
              'taxonomy' => 'product_cat',
              'field' => 'id',
              'terms' => $YourCat
          )
      ),
    'posts_per_page' => 10,
);
$query1 = new WP_Query( $args );
if ( $query1->have_posts() ): ?>
<div class="posts">
<?php while ( $query1->have_posts() ) { $query1->the_post(); ?>
	<div class="post">
      <div><?php the_post_thumbnail(); ?></div>
      <div><?php the_title(); ?></div>
    </div>
<?php }
wp_reset_postdata();
?></div><?php
endif;
?>

 

 

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

تشکر

بنظرم این کد فقط نهایتا برای دو دسته بندی کاربرد داره

برای استفاده از چندین دسته بندی (10-20) باید از  switch استفاده کرد یا elseif ؟

لینک به ارسال
در 8 ساعت قبل، ahmad4u گفته است :

نظرم این کد فقط نهایتا برای دو دسته بندی کاربرد داره

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

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

لینک به ارسال
  • 2 هفته بعد...
در در ۱۴۰۰/۵/۱ در 15:24، asadiy4n گفته است :

<?php
if ( has_term( 'cat1', 'product_cat' ) ){
	$YourCat = 50;
}elseif( has_term( 'cat2', 'product_cat' ) ){
	$YourCat = 52;
}else{
	$YourCat = 100;
}
$args = array(
	'post_type' => 'product',
	'tax_query' => array(
          array(
              'taxonomy' => 'product_cat',
              'field' => 'id',
              'terms' => $YourCat
          )
      ),
    'posts_per_page' => 10,
);
$query1 = new WP_Query( $args );
if ( $query1->have_posts() ): ?>
<div class="posts">
<?php while ( $query1->have_posts() ) { $query1->the_post(); ?>
	<div class="post">
      <div><?php the_post_thumbnail(); ?></div>
      <div><?php the_title(); ?></div>
    </div>
<?php }
wp_reset_postdata();
?></div><?php
endif;
?>

 

 

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

کد بالا در صفحه اضافه شد اما چیزی نمایش داده نشد

با حالت های زیر تست شد و باز چیزی نمایش داده نشد

1- cat= post cat id , $YourCat = product cat id

2- cat= product cat id , $YourCat = post cat id

لینک به ارسال

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

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

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

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

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

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

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

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

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