• 0

كيف أظهر لائحة منشورات مرتبطة بحقل معين على وورودبريس؟

على نظام ووردبريس، لدي منشورات تحت تصنيف يدعى بـ "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();

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن