Gaunant WordPress įrašų sąrašą galima filtruoti užklausą pridedant papildomą sąlygą. Pavyzdžiui, jei reikia parodyti tik lipnius įrašus, reikia paimti visų lipnių įrašų sąrašą ir įtraukti juos į WHERE sąlygos filtrą.
1 2 | $sticky = get_option( 'sticky_posts' ); $where .= ' AND wp_posts.ID IN (' .implode( ',' , $sticky ). ') ' ; |
Jei tokia sąlyga yra reikalinga tik pagrindiniame puslapyje, reikia pridėti tikrinimą pagal funkciją is_home(). WordPress užklausos sąlygos pakeitimams yra specialus filtras posts_where, kuris grąžina WHERE sąlygos reikšmę prieš darant užklausą į duomenų bazę. Šis filtras gali būti naudojamas kurti papildinius, pavyzdžiui, rodyti tik lipnius įrašus pagrindiniame puslapyje:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php //Plugin Name: Forever Sticky //Description: Rodyti tik lipnius įrašus pagrindiniame wordpress puslapyje //Author: Polyetilen //Version: 1.0 function forever_sticky_condition ( $where ) { if (is_home()){ $sticky = get_option( 'sticky_posts' ); if ( count ( $sticky )>0){ return $where . ' AND wp_posts.ID IN (' .implode( ',' , $sticky ). ') ' ; } else { return $where ; } } else { return $where ; } } add_filter( 'posts_where' , 'forever_sticky_condition' ); ?> |
Parsisiųsti papildinį Forever sticky.