Automattic / Automattic/VIP-Coding-Standards

New Sniff: wp_get_post_revisions memory issues

Offen
#468 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Standard: VIP-Go Type: Enhancement
Vorherrschende Sprache
PHP
Sterne
261
Forks
44
Ø Merge
19 Min.
Gemergte PRs (30 T.)
1

Beschreibung

## What problem would the enhancement address for VIP?
`wp_get_post_revisions` can be problematic because it loads the entire post object for each revision. I've seen this in CLI commands and other places, where you might be looping through a set of posts, and then suddenly have to load the entire post objects for every revision a post has. If those revisions are large and numerous - it quickly fails.

Related trac: https://core.trac.wordpress.org/ticket/34560

## Describe the solution you'd like
We should suggest they only get the IDs for the revisions instead of the whole object:

```
wp_get_post_revisions( $post->ID, array( 'fields' => 'ids' ) );
```

## What code should be reported as a violation?

Anything that doesn't have the fields argument, like:

```
wp_get_post_revisions( $post->ID );
```

## What code should *not* be reported as a violation?

Getting the `ids` field or other fields instead of the whole object.
```
wp_get_post_revisions( $post->ID, array( 'fields' => 'ids' ) );
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit den verletzenden und erlaubten wp_get_post_revisions-Beispielen des Issues und dem verknüpften WordPress Trac-Ticket. Als erledigt gilt, wenn Aufrufe ohne ein fields-Argument gemeldet werden, während Aufrufe, die ids oder einen anderen fields-Wert anfordern, nicht gemeldet werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
performance, tooling
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.