וורדפרס ואתרי אינטרנט

owl-158414_960_720
דורג 5 מתוך 5

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

פייגינג וורדפרס בשימוש בשאילתא

כאשר צריך לעשות שאילתא מורכבת יותר מאשר wp_query, משתמשים ב שאילתא מהסוג הזה

$wpdb->get_results($querystr,OBJECT)

ובשונה מ wp_query צריך להשקיע קצת יותר כדי לבנות עימוד למטה מה שנקרא פייגינג או באנגלית pagination

אני מראה פה דוגמא לבניית פייגר עם הפונקציה   paginate_links שבנויה בוורדפרס:

 

 

global $wpdb;
$per_page = 10; // מספר העמודים לדף
// יש לשלוח cpage 
$page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;
if ($page > 1) {
    $offset = $page * $per_page - $per_page;
} else {
    $offset = $page;
}
// השאילתא שלכם 
$sql_query = "select * from $wpdb->posts where post_type in ('simple','blue')"
            . "order by id desc limit $per_page offset $offset";
$results = $wpdb->get_results($sql_query, OBJECT);

//כאן אתם רושמים את הקוד שלכם שרץ לרוב בלולאה כלשהי


//השאילתא שלכם בלי הגבלה כדי לבדוק את מספר עמודות שקיימות
$total = $wpdb->get_var("SELECT count(id) from $wpdb->posts where post_type in('simple','blue')");
echo paginate_links(array(
    'base' => add_query_arg('cpage', '%#%'),
    'format' => '',
    'prev_text' => __('«'),
    'next_text' => __('»'),
    'total' => ceil($total / $per_page),
    'current' => $page
));

יש להשים לב שיש לשלוח ב get את cpage

וכמובן לשנות את השאילתות….

בהצלחה.

תפריט נגישות