اذهب إلى المحتوى

السؤال

نشر

على نظام ووردبريس، لدي منشورات تحت تصنيف يدعى بـ "Writers"، وتصنيف آخر "Documents"، وقد قمت بعمل رابطة بين لائحة الكتاب للمستند. مما يعني أن النتيجة ستكون جدول يضم لائحة الكتاب.

ما أريده بالضبط هو إظهار معلومات أخرى -ثانوية- خاصة بكل كاتب، على أن أظهرها  في صفحة مستقلة مع جميع الكتب المتعلقة به.

هذه محاولتي لكتابة الكود:

$item        = 0;
$writerName = get_the_title();

$my_contributions = new WP_Query( array( 
    'post_type'         => 'documents',
    'posts_per_page'    => -1,
    'meta_key'          => 'doc_contributors',
    'meta_value'        => $writerName,
    'meta_compare'      => 'LIKE'
) );

if( $my_contributions->have_posts() ) : 
    while( $my_contributions->have_posts() ) : 
        $my_contributions->the_post();
        $item++;
?>

<div class="list-line margint10 clearfix">
    <?php echo esc_attr( $item ) . ". " ?><a href="<?php the_permalink(); ?>"><?php get_the_title( $my_contributions->ID ); ?></a>
    <br />
</div>

<?php
    endwhile;
endif;
wp_reset_query();

لكنه لا يعمل، فكيف أصححه إن كان به خطأ؟ أو أستبدله؟

Recommended Posts

  • 0
نشر (معدل)

سنقوم بجلب بيانات المستندات documents، عن طريق دالة get_posts، والتي سنمرر عبرها بعض المعايير الخاصة، والتي تتوفر في هذه البيانات كارتباطها مع جدول الكاتب Writer، جلب تعريفه key وبعض قيم هذا الجدول، بهذه الطريقة:

<div class="entry-content">

   <h2>Documents written by this writer</h2>
        <?php 
        /*
         * document لجلب المنشورات الخاصة بالمستنداتget_posts 
         *  
         */

         $documents = get_posts(array(
                     'post_type' => 'document',
                     'meta_query' => array(
                      array(
                            'key' => 'writer', // تم ربط الجدول هنا بجدول الكاتب
                            'value' => '"' . get_the_ID() . '"', // جلب تعريف الكاتب 
                            'compare' => 'LIKE'
                                )
                            )
                        ));

                        ?>
        <?php if( $documents ): ?>
             <ul>
             <?php foreach( $documents as $document ): ?>
                <li>
                   <a href="<?php echo get_permalink( $document->ID ); ?>">
                     <?php echo get_the_title( $document->ID ); ?>
                   </a>
                </li>
             <?php endforeach; ?>
            </ul>
      <?php endif; ?>

</div>

لتكون نتيجة الربط بين الجدولين هي مصفوفة array.

تم التعديل في بواسطة E.Nourddine

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...