חיפוש ]

שינוי מספר הפוסטים המופיעים בעמודי ארכיון של 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 תגובות...

תגובה חדשה

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