שינוי מספר הפוסטים המופיעים בעמודי ארכיון של CPT

על מנת לשנות את מספר הפוסטים המופיעים בעמודי הארכיון של סוג תוכן מותאם כלשהו, ניתן להשתמש בפעולה pre_get_posts שאולי אתם כבר מכירים.

כברירת מחדל, מספר הפוסטים שיופיעו הוא מה שנקבע בהגדרות המופיעות בלוח הבקרה של וורדפרס תחת הגדרות > קריאה תחת האפשרות בעמוד הראשי ובעמודי ארכיון יוצגו לכל היותר X פוסטים. אך ייתכן ותרצו שמספר זה יהיה שונה בפוסטים סטנדרטים לעומת פוסטים של סוגי תוכן מותאמים שיצרתם בעצמכם (או שנוצרו על ידי תוסף כלשהו).

הפעולה pre_get_posts מתנהגת כמעין פילטר לשאילתא הראשית שרצה בעמוד, ואם אתם מעוניינים לשנות את מספר התוצאות בשאילתא זו נכון ויעיל יותר יהיה להשתמש ב pre_get_posts מאשר ליצור שאילתא חדשה באמצעות WP_Query. הנה הקוד באמצעותו ניתן לבצע זאת:

// Display all posts on XXXXXX Archive Page
function sv_cpt_page( $query ) {
    if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'XXXXXXX' ) ) {
        $query->set( 'posts_per_page', '-1' );
    }
}
add_action( 'pre_get_posts', 'sv_cpt_page' ); 

שימו לב כי עליכם להחליף את XXXXXX בשם בו רשמתם את אותו Custom Post Type.

במקרה זה, כל הפוסטים בעמוד הארכיון של סוג התוכן מסוג XXXXXX יופיעו מכיוון והשתמשנו ב  1- עבור הפרמטר posts_per_page. באפשרותכם כמובן לשנותו לאיזה מספר שתרצו.

באותה מידה, אם תרצו לבצע זאת עבור טקסונומיה מסויימת, ניתן לבצע זאת בצורה הבאה:

// Display all posts on XXXXXX tax Page
function sv_tax_page( $query ) {
    if ( !is_admin() && $query->is_main_query() && is_tax('project_category') ) {
        $query->set( 'posts_per_page', '-1' );
    }
}
add_action( 'pre_get_posts', 'sv_tax_page' );

בשני המצבים השימוש ב !is_admin נעשה בכדי לא להשפיע על ממשק הניהול של וורדפרס. השימוש ב $query->is_main_query מוודא כי אף שאילתא אחרת לא תושפע מהגדרה זו.

באפשרותכם להשתמש בדרך זה על מנת לשנות פרמטרים נוספים עבור אותה שאילתא והנה מספר דוגמאות:

$query->set( 'orderby', 'title' );
$query->set( 'order', 'DSC' );
$query->set( 'post__not_in', array(7,11) ); // Exclude Posts
$query->set( 'cat', '-1,-1257' ); // Exclude Categories
$query->set( 'cat', '153' ); // Include Categories

אתם מוזמנים לראות את הערכים השונים עבור פרמטרים אלו ב Codex.

 

רועי יוסף
רועי יוסף

שמי רועי יוסף, מפתח אתרי וורדפרס בעל תשע שנות ניסיון. אני מפתח מנוסה המייצר תבניות יעודייות ותפורות ללקוח על בסיס עיצוב. אוהב טיפוגרפיה, צבעים וכל מה שבינהם ומכוון לספק אתרים רספונסיבים עם ביצועים גבוהים, בעלי קוד ולידי, סמנטי ונקי.

0תגובות...

השאירו תגובה

 

פעימות
Up!
לבלוג