no.hideout-lastation.com
Paradis For Designere Og Utviklere


29 WordPress Tweaks for å forbedre innlegg og sider

Vi elsker WordPress - men ikke alle av oss er klare til å bosette seg med alle standardinnstillingene og viser - spesielt hvordan innlegg vises. Som vi har lært at unikhet er viktig for et nettsteds branding som gir de besøkende et flott inntrykk, har bloggere og utviklere gjennom disse årene forsøkt å finjustere postdisplayet, for å gjøre det så unikt som mulig.

I dag skal vi fokusere på de smarte tweaksene du kan utføre for å forbedre WordPress-postvisningen. Enten du er ute etter å endre visningsvisningen for å forbedre brukeropplevelsen eller øke inntektene eller sidevisninger, er det sjansene for at det er en måte å gjøre det uten plugin, og de fleste av utdragene som er oppført her, er enkle å implementere, i de fleste tid du bare må kopiere og lime inn den angitte koden.

Håper du finner disse tweaksene nyttig for dine prosjekter, nyt tilpassing!

Frontend

1. Endre utdragslengden

Tweaket nedenfor vil endre utdragslengden, som du bare kan legge til følgende linjer med kode i din functions.php- fil, med verdien 75 som utdragslengden.

 add_filter ('utdrag_lengde', 'my_excerpt_length'); funksjon my_excerpt_length ($ len) {return 75; } 

[Kilde: Danny van Kooten]

2. Twitter stil "tid siden" datoer

De fleste vet ikke at WordPress har en innebygd funksjon for å vise datoen ved hjelp av "Time Ago" -formatet, og koden nedenfor kan limes til hvor som helst i sløyfen for å vise datoen med formatet.

 Lagt ut 

[Kilde: PHP Snippets]

3. Vis innlegg miniatyrbilde i RSS-feed

Introdusert i WordPress 2.9, funksjonen the_post_thumbnail() er veldig nyttig å legge til og vise et miniatyrbilde knyttet til et innlegg. Den dårlige nyheten er at det ikke er noen innebygd metode for å vise miniatyrbildet i RSS-feed. Funksjonen nedenfor vil løse dette problemet. Bare lim det inn i din functions.php- fil, lagre det, og miniatyrbildet vil automatisk bli vist i din RSS-feed.

 // Vis innlegg miniatyrer i feeds funksjon diw_post_thumbnail_feeds ($ content) {global $ post; hvis (has_post_thumbnail ($ post-> ID)) {$ content = ' 
'. get_the_post_thumbnail ($ post-> ID). '
'. $ Innhold; } returner $ content;} add_filter ('the_excerpt_rss', 'diw_post_thumbnail_feeds'); add_filter ('the_content_feed', 'diw_post_thumbnail_feeds');

[Kilde: Graving i WordPress]

4. Begrens søket til kun å skrive titler

Du kan legge til denne koden i funksjonsfilen til WordPress-temaene for å begrense søket til kun å legge inn titler.

 funksjon __search_by_title_only ($ søk, & $ wp_query) {hvis (tomt ($ søk)) returnere $ søk; // oversette behandling - ingen søkeord i spørringen $ q = & $ wp_query-> query_vars; // wp-includes / query.php linje 2128 (versjon 3.1) $ n =! tom ($ q ['eksakt'])? '': '%'; $ searchand = ''; foreach ((array) $ q ['search_terms'] som $ term) {$ term = esc_sql (like_escape ($ term)); $ search. = "{$ searchand} ($ wpdb-> posts.post_title LIKE '{$ n} {$ term} {$ n}')"; $ searchand = 'AND'; } $ term = esc_sql (like_escape ($ q ['s'])); hvis (tom ($ q ['setning']) && count ($ q ['search_terms'])> 1 && $ q ['search_terms'] [0]! = $ q ['s']) $ søk. = "ELLER ($ wpdb-> posts.post_title LIKE '{$ n} {$ term} {$ n}')"; hvis (! tomt ($ søk)) {$ search = "OG ({$ search})"; hvis (! er_user_logged_in ()) $ search. = "OG ($ wpdb-> posts.post_password = '')"; } returner $ søk; } add_filter ('posts_search', '__search_by_title_only', 10, 2); 

[Kilde: WpSnipp]

5. Vis et stigende nummer på hvert innlegg

Med tweaket nedenfor kan du vise et økende nummer på hvert innlegg, og det er ganske enkelt å implementere det. Først lim inn følgende funksjon i din functions.php- fil:

 funksjon updateNumbers () {global $ wpdb; $ querystr = "VELG $ wpdb-> innlegg. * FRA $ wpdb-> innlegg hvor $ wpdb-> posts.post_status = 'publiser' og $ wpdb-> posts.post_type = 'post'"; $ pageposts = $ wpdb-> get_results ($ querystr, OBJECT); $ teller = 0; hvis ($ sideposter): foreach ($ sideposter som $ post): setup_postdata ($ post); $ teller ++; add_post_meta ($ post-> ID, 'incr_number', $ teller, sant); update_post_meta ($ post-> ID, 'incr_number', $ teller); endforeach; slutt om; } add_action ('publish_post', 'updateNumbers'); add_action ('deleted_post', 'updateNumbers'); add_action ('edit_post', 'updateNumbers'); 

Når du er ferdig, kan du vise postnummeret med følgende kode. Legg merke til at den må brukes i løkken.

 ID, 'incr_number', true); ?> 

[Kilde: Alchymyth, via WpRecipes]

6. Ekskluder innlegg fra WordPress Feed

Vil du ekskludere bestemte innlegg fra din feed? Her er tweak for deg. Vær oppmerksom på at du bare bør filtrere hvor du vil filtrere; i vårt eksempel er det i vår feed $wp_query->is_feed . Hvis du ikke gjorde det på den måten, ville filteret også løpe i bakenden, og disse innleggene vil ikke bli vist på postoversikten.

Funksjonen har to parametere. Du gir den første parameteren $where en utvidelse av SQL-strengen, som vil ta vare på filtreringen basert på ID-en . Deretter, innenfor parentesene, må du sette inn IDene til innleggene, som du liker å filtrere.

 funksjon fb_post_exclude ($ where, $ wp_query = NULL) {global $ wpdb; hvis (! $ wp_query) global $ wp_query; hvis ($ wp_query-> is_feed) {// utelukkende innlegg med ID 40 og 9 $ hvor. = "OG $ wpdb-> innlegg.ID IKKE IN (40, 9)"; } returnere $ where; } add_filter ('posts_where', 'fb_post_exclude', 1, 2); 

[Kilde: WP Engineer]

7. Omdirigere til innlegg når søket returnerer enkeltresultat

Sett denne koden i funksjonsfilen til ditt WordPress-tema for å omdirigere søket til innlegget automatisk når WordPress bare returnerer et enkelt søkeresultat.

 add_action ('template_redirect', 'single_result'); funksjon single_result () {if (is_search ()) {global $ wp_query; hvis ($ wp_query-> post_count == 1) {wp_redirect (get_permalink ($ wp_query-> innlegg ['0'] -> ID)); }}} 

[Kilde: WpSnipp]

8. Opprett automatisk meta beskrivelse fra the_content

Hvis du legger til denne koden i funksjonsfilen til WordPress-temaet, oppretter du automatisk en metabeskrivelse fra WordPress-posten din, og striper ut alle kortkodene og kodene. Sørg også for at du har den i header.php av WordPress-temaet, eller denne koden vil ikke fungere.

 funksjon create_meta_desc () {global $ post; hvis (! er_single ()) {return; } $ meta = strip_tags ($ post-> post_content); $ meta = strip_shortcodes ($ post-> post_content); $ meta = str_replace (array ("\ n", "\ r", "\ t"), '', $ meta); $ meta = substr ($ meta, 0, 125); ekko "  ";} add_action ('wp_head', 'create_meta_desc'); 

[Kilde: WpSnipp]

9. Bytt ut ord automatisk med tilknyttede lenker

Hvis du vil erstatte ord med tilknyttede lenker automatisk, kan du bare legge inn koden nedenfor i din functions.php- fil. Husk å skrive inn dine ord / linker som vist i eksempelkoden nedenfor.

 funksjon replace_text_wps ($ text) {$ erstatte = array (// 'WORD TO REPLACE' => 'BYTE WORD WITH THIS' 'oppgaven' => ' ', 'studiopress' => ' '); $ text = str_replace (array_keys ($ erstatte), $ erstatte, $ tekst); returnere $ tekst; } add_filter ('the_content', 'replace_text_wps'); add_filter ('the_excerpt', 'replace_text_wps'); 

[Kilde: catswhoblog.com]

10. Legg til «Les mer» permalink til slutten av utdraget

Hvis du legger til denne koden nedenfor i funksjonen .php-filen i WordPress-temaet, legger du til en "les mer" permalink på slutten av the_excerpt, ganske mye som hva the_content gjør.

 funksjon excerpt_readmore ($ mer) {return '... '. 'Les mer' . ' '; } add_filter ('utdrag_more', 'utdrag_readmore'); 

[Kilde: WpSnipp]

11. Vis relaterte innlegg uten et plugin

Ved å installere koden nedenfor vil du få WordPress-siden til å vise relaterte innlegg basert på nåværende postetikett (e). Du må plassere den i single.php, eller bare hvor som helst du vil vise relaterte innlegg.

 ID); hvis ($ tags) {$ tag_ids = array (); foreach ($ tags som $ individual_tag) $ tag_ids [] = $ individual_tag-> term_id; $ args = array ('tag__in' => $ tag_ids, 'post__not_in' => array ($ post-> ID), 'showposts' => 5, // Antall relaterte innlegg som vil bli vist. 'caller_get_posts' => 1 ); $ my_query = nytt wp_query ($ args); hvis ($ my_query-> have_posts ()) {echo ' 

Relaterte innlegg

    '; mens ($ my_query-> have_posts ()) {$ my_query-> the_post (); ?>
  • '; }}?>

[Kilde: Bin-Co]

12. Lag dine egne populære innlegg i sidefeltet

Det er veldig enkelt å sette opp en sidebar-widget for å vise populære innlegg. Bare kopier og lim inn koden under i sidebar.php- filen din. Hvis du må endre antall innlegg som vises, kan du endre 5 på slutten av linje 3 til et hvilket som helst nummer du foretrekker.

Populære innlegg

    get_results ("SELECT comment_count, ID, post_title FROM $ wpdb-> innlegg ORDER BY comment_count DESC LIMIT 0, 5"); foreach ($ resultat som $ post) {setup_postdata ($ post); $ postid = $ post-> ID; $ title = $ post-> post_title; $ commentcount = $ post-> comment_count; hvis ($ commentcount! = 0) {?>
  • { }

[Kilde: Pro Blog Design]

13. Angi utløpsdato Dato / klokkeslett

Nedenfor finner du en nyttig kode som du kan legge inn i WordPress Themes for å aktivere muligheten for å opprette postutløp basert på dato og klokkeslett. Rediger temaet ditt og erstatt din nåværende WordPress-loop med denne "hacked" -sløyfen:

 $ utløpsdato = get_post_custom_values ​​('utløp'); hvis (is_array ($ utløptid)) {$ expirestring = implode ($ utløpstid); } $ secondsbetween = strtotime ($ expirestring) -time (); hvis ($ sekunder mellom> 0) {// For eksempel ... the_title (); the_excerpt (); } engang; slutt om; ?> 

For å opprette et innlegg med dato / klokkeslett, kan du bare opprette et egendefinert felt. Gi utløp som nøkkel og dato / klokkeslett (format: mm / dd / yyyy 00:00:00 ) som en verdi. Innlegget vil ikke dukke opp etter det aktuelle tidsstempelet.

[Kilde: WpRecipes]

14. Liste fremtidige innlegg

WordPress tillater oppføring av fremtidige innlegg, og for å oppnå denne funksjonen, lim inn koden til hvor du vil at du skal vise fremtidige innlegg:

Fremtidige hendelser


Ingen fremtidige hendelser planlagt.

[Kilde: WpRecipes]

15. Vis kun AdSense for søkemotorer besøkende

Det er mulig å vise AdSense til de besøkende fra søkemotorer, og her er koden for å oppnå det. Bare lim koden under i temaets funksjoner.php- fil.

 funksjon scratch99_fromasearchengine () {$ ref = $ _SERVER ['HTTP_REFERER']; $ SE = array ('/ search?', 'Images.google.', 'Web.info.com', 'søk', 'del.icio.us/search', 'soso.com', '/ søk / ', ' .yahoo. '); foreach ($ SE som $ kilde) {hvis (strpos ($ ref, $ source)! == false) return true; } returner falsk; } 

$SE array er der du angir søkemotorene. Du kan legge til ny søkemotor ved å legge til nytt element i arrayet, og deretter lim inn følgende kode hvor som helst i malen der du vil at AdSense-annonsene skal vises, og det er gjort! Annonsene vises kun for besøkende fra søkemotorer.

 hvis (function_exists ('scratch99_fromasearchengine')) {if (scratch99_fromasearchengine ()) {INSERT DIN KODE HER}} 

[Kilde: Scratch99, via WpRecipes]

Baksiden

1. Tillat flere HTML-koder i redigeringsprogrammet

Som standard tillater ikke WordPress-editor HTML-koder som ikke er kompatible med XHTML 1.0-standarden. Koden nedenfor vil imidlertid tvinge redaktøren til å godta flere koder. Du kan lime det inn i temaets funksjoner.php- fil, lagre det, og funksjonen er god å gå.

 funksjon fb_change_mce_options ($ initArray) {// Kommaseparert streng od extendes tags // Kommando separert streng av utvidede elementer $ ext = 'pre [id | navn | klasse | stil], iframe [align | longdesc | navn | bredde | høyde | frameborder | rulle | marginheight | marginwidth | src] '; hvis (isset ($ initArray ['extended_valid_elements']))) {$ initArray ['extended_valid_elements']. = ', '. $ Ext; } ellers {$ initArray ['extended_valid_elements'] = $ ext; } // kan være; sett liten parametre verify_html // $ initArray ['verify_html'] = false; returner $ initArray; } add_filter ('tiny_mce_before_init', 'fb_change_mce_options'); 

[Kilde: WP Engineer]

2. Angi standard editor

Utdrag nedenfor endrer standardredigering i WordPress admin. Du kan gå med Visual Editor, eller du kan velge HTML Editor, bare legg til en av dem i functions.php filen.

 # Dette setter Visual Editor som standard add_filter ('wp_default_editor', create_function ('', 'return "tinymce";')); # Dette stiller HTML Editor som standard add_filter ('wp_default_editor', create_function ('', 'return "html";')); 

[Kilde: WP-Snippets]

3. Sett forskjellige rediger stilark for forskjellige posttyper

Med den følgende koden limt inn i din functions.php- fil, kan du sette opp forskjellige editor stilark for forskjellige posttyper. Du må tilpasse det, avhengig av posttypene dine, og husk å endre stilarkene også.

 fungere my_editor_style () {global $ current_screen; bytt ($ current_screen-> post_type) {case 'post': add_editor_style ('editor-style-post.css'); gå i stykker; case 'side': add_editor_style ('editor-style-page.css'); gå i stykker; case 'portefølje': add_editor_style ('editor-style-portfolio.css'); gå i stykker; }} add_action ('admin_head', 'my_editor_style'); 

[Kilde: WPStorm]

4. tillat opplasting av flere filtyper

Av visse grunner vil WordPress Uploader ikke la deg laste opp bestemte filtyper, for eksempel Textmate's .tmCommand . Hvis du trenger å laste opp disse typer filer til ditt WordPress-område, kommer en funksjonell kodebrikke som lar deg gjøre det, og du trenger bare å lime den inn i din functions.php- fil. Du kan også legge til flere filtyper ved å legge dem på linje 4, adskilt av et rør (|).

 'søknad / oktet-strøm')); returner $ mimes; }?> add_filter ('upload_mimes', 'addUploadMimes'); 

[Kilde: pioupioum.fr, via WpRecipes]

5. Aktiver TinyMCE editor for post the_excerpt

Når du legger inn følgende kutt i funksjonsfilen til WordPress-temaet, legger du til TinyMCE-editoren i tekstutsnittet for utdragets utdrag.

 funksjon tinymce_excerpt_js () {?> 

[Kilde: WpSnipp]

6. Postformater - Flere kreative måter for et tema

Syntaxen nedenfor gir noen av de mulige innleggformatene som deretter kan velges og brukes direkte i artikkelen, og hva du trenger å gjøre er å sette koden i din functions.php- fil av temaet ditt.

 add_theme_support ('postformater', array ('til side', 'lyd', 'bilde', 'video')); 

[Kilde: WP Engineer]

7. Vis innleggs miniatyrbilde også i Rediger innlegg og sideoversikt

WordPress versjon 2.9 introduserte funksjonen til Post Thumbnail. Det er ganske kjempebra, og du kan også vise miniatyrbilder i Rediger innlegg og sideoversikt. Du kan sette følgende kode inn i et plugin eller kopiere dem til funksjonsfilen i theme.php.

 Hvis (! function_exists ('fb_AddThumbColumn') && function_exists ('add_theme_support')) {// for post og side add_theme_support ('post-miniatyrer', array ('post', 'side')); funksjon fb_AddThumbColumn ($ cols) {$ cols ['thumbnail'] = __ ('Thumbnail'); returnere $ cols; } funksjon fb_AddThumbValue ($ column_name, $ post_id) {$ width = (int) 35; $ høyde = (int) 35; hvis ('thumbnail' == $ kolonneavn) {// miniatyrbilde av WP 2.9 $ thumbnail_id = get_post_meta ($ post_id, '_thumbnail_id', true); // bilde fra galleri $ vedlegg = get_children (array ('post_parent' => $ post_id, 'post_type' => 'vedlegg', 'post_mime_type' => 'bilde')); hvis ($ thumbnail_id) $ thumb = wp_get_attachment_image ($ thumbnail_id, array ($ bredde, $ høyde), true); elseif ($ vedlegg) {foreach ($ vedlegg som $ attachment_id => $ vedlegg) {$ thumb = wp_get_attachment_image ($ attachment_id, array ($ bredde, $ høyde), true); }} hvis (isset ($ thumb) && $ thumb) {echo $ thumb; } ellers {echo __ ('None'); }}} // for innlegg add_filter ('manage_posts_columns', 'fb_AddThumbColumn'); add_action ('manage_posts_custom_column', 'fb_AddThumbValue', 10, 2); // for sider add_filter ('manage_pages_columns', 'fb_AddThumbColumn'); add_action ('manage_pages_custom_column', 'fb_AddThumbValue', 10, 2); } 

[Kilde: WP Engineer]

8. Opprett tilpassede innlegg status meldinger i admin

Denne tweaken ble opprinnelig skrevet av utvikleren som en måte for en klient å vise egendefinerte meldinger for hvert innlegg som en forfatter oppretter. I dette tilfellet kan et innlegg ha en melding som avvist, feil, kilde, endelig osv. Du kan endre meldingene like under kodenes kommentar, Array of custom status messages, bare for å sikre at du også endret klassenavnene som Du kan endre dem etter kommentaren, endre farge på meldinger under .

 add_filter ('display_post_states', 'custom_post_state'); funksjon custom_post_state ($ states) {global $ post; $ show_custom_state = get_post_meta ($ post-> ID, '_status'); '); hvis ($ show_custom_state) {$ states [] = __ (' '. $ show_custom_state [0]. ' '); } returnere $ states; } add_action ('post_submitbox_misc_actions', 'custom_status_metabox'); fungere custom_status_metabox () {global $ post; $ custom = get_post_custom ($ post-> ID); $ status = $ tilpasset ["_ status"] [0]; $ i = 0; / * ----------------------------------- * / / * Array av egendefinerte statusmeldinger * / / * ----------------------------------- * / $ custom_status = array ('Staving', 'Review', 'Feil', 'Kilde', 'Avvist', 'Endelig', ); ekko ' 
'; ekko ' '; ekko '
'; } add_action ('save_post', 'save_status'); funksjon save_status () {global $ post; hvis (definert ('DOING_AUTOSAVE') && DOING_AUTOSAVE) {return $ post-> ID; } update_post_meta ($ post-> ID, "_status", $ _POST ["status"]); } add_action ('admin_head', 'status_css'); funksjon status_css () {echo ' '; }

[Kilde: WpSnipp]

9. Angi maksimal posttittellengde

Hvis du legger til denne PHP-koden i functions.php- filen i WordPress-temaet, angis maksimalt antall ord som kan vises i din posttittel, ganske hendige tweaks!

 funksjon maxWord ($ title) {global $ post; $ title = $ post-> post_title; hvis (str_word_count ($ title)> = 10) // sett dette til maksimum antall ord wp_die (__ ('Feil: din posttittel er over det maksimale ordtallet.')); } add_action ('publish_post', 'maxword'); 

[Kilde: WpSnipp]

10. Hvordan endre WordPress editor font

Hater gjeldende skrifttype som brukes i WordPress editor? Det er mulig å bli endret til moderne skrift som Monaco eller Consolas, bare lim inn koden i WordPress-temaets funksjoner.php- fil.

 funksjon change_editor_font () {echo " ";} add_action (" admin_print_styles ", " change_editor_font "); 

[Kilde: shailan.com, via WpRecipes]

11. Legge til et tilpasset felt automatisk på post / side publisering

En kodebit for å installere et egendefinert felt automatisk til en side eller post når de publiseres. Du kan bare legge til koden under i din functions.php- fil, plassert i temaets mappe. Selvfølgelig, ikke glem å endre det egendefinerte feltnavnet .

 add_action ('publish_page', 'add_custom_field_automatically'); add_action ('publish_post', 'add_custom_field_automatically'); funksjon add_custom_field_automatically ($ post_ID) {global $ wpdb; hvis (! wp_is_post_revision ($ post_ID)) {add_post_meta ($ post_ID, 'field-name', 'tilpasset verdi', sant); }} 

[Kilde: wpCanyon]

12. Slett av ubrukte innleggsrevisjoner

Her kommer en veldig nyttig SQL-spørring som vil slette alle innleggsendringer umiddelbart, samt meta knyttet til det. Du må kjøre følgende spørring på WordPress-databasen, og alle revisjoner (samt meta tilknyttet det) blir slettet fra databasen. Et viktig notat her, sørg for å sikkerhetskopiere databasen før du kjører koden.

 DELETE a, b, c FRA wp_posts a WHERE a.post_type = 'revisjon' VENSTRE BLI MED WP_term_relationships b PÅ (a.ID = b.object_id) VENSTRE KOMMe wp_postmeta c ON (a.ID = c.post_id); 

[Kilde: Lesterchan.net]

13. Endre utdragslengde avhengig av kategori

Har du noen gang ønsket å endre utdragslengden basert på hvilken kategori du er på? Her kommer koden som gir ditt ønske. Bare lim inn koden i din functions.php- fil, og ikke glem å endre kategori-ID på linje 3!

 add_filter ('utdrag_lengde', 'my_excerpt_length'); funksjon my_excerpt_length ($ lengde) {if (in_category (14)) {return 13; } ellers {return 60; }} 

[Kilde: WpRecipes]

14. Deaktiver innlegg automatisk lagring

Hvis du av en eller annen kritisk grunn vil at du vil deaktivere funksjonen som lagrer innlegget ditt mens du redigerer det i dashbordet, er det mulig. Bare åpne din functions.php- fil og lim inn følgende kode i filen:

 funksjon disableAutoSave () {wp_deregister_script ('autosave'); } add_action ('wp_print_scripts', 'deaktiverAutoSave'); 

[Kilde: WpRecipes]

Du kan da lagre filen, og WordPress vil aldri autosave et innlegg. Du kan også få funksjonen tilbake ved å slette koden.

Mer

Leter du etter flere WordPress 'tilpasningsutstyr? Vi har mer for deg!

  • WordPress: 30 Nyttige triks og hacker
  • WordPress: 30 Flere triks og hacker
  • WordPress: 40 triks og hacker

Slik oppretter du WordPress ved hjelp av OpenShift

Slik oppretter du WordPress ved hjelp av OpenShift

OpenShift er en plattform-som-en-tjeneste fra open source-lederen, Redhat. Den fungerer på åpen kildekode OpenShift-kode som kjører på RHEL-systemer. OpenShift kan brukes til å hoste og kjøre en rekke programvare, og den støtter ulike open source teknologier og databaser. Den har innebygd støtte for flere programmeringsspråk.Vil du h

(Tekniske og design tips)

Få din egen personlige sky med PClouds

Få din egen personlige sky med PClouds

Cloud storage har utvilsomt blitt en svært viktig del av vårt daglige liv . Nå som vi er koblet til via flere enheter, er det raskt å bli en nødvendighet i stedet for en luksus med å få tilgang til våre filer hvor som helst og overalt.Men skyen kommer med sine egne risikoer: du er avhengig av en tredjepartsserver, og spesielt nå er det alltid fare for at personvernet og sikkerheten til dataene dine blir kompromittert . Hvis di

(Tekniske og design tips)