publish_post() warns on PHP 8 when a feed has no subscribers

Aperta Adatta ai principianti
#17 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
83/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
php
Ambito
backend

Direzione di ricerca

Inizia individuando publish_post() e get_subscribers() nel codice sorgente del plugin; l’issue identifica il ciclo dei sottoscrittori come il percorso che non funziona per entrambi i feed RSS2 e Atom. Verifica come viene gestito un risultato vuoto dei sottoscrittori e riproduci una pubblicazione senza sottoscrittori su PHP 8. Il lavoro è completato quando la pubblicazione senza sottoscrittori non produce avvisi di offset di array per nessuno dei due feed, mentre le callback dei sottoscrittori continuano a essere eseguite quando sono presenti sottoscrittori.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

When a post is published and a feed has no subscribers, get_subscribers() returns FALSE. publish_post() then runs foreach ( (array) $subs as $callback => $data ). Casting FALSE gives [ false ], so the loop runs once with $data === false and $data['is_active'] raises "Trying to access array offset on value of type bool" on PHP 8 (a notice on 7.4).

This happens on every publish on any site with no subscribers, for both the RSS2 and Atom feeds.

Fix: skip the loop when there are no subscribers, e.g. wrap each loop in if ( ! empty( $subs ) ) { … }, or have get_subscribers() return array() instead of FALSE.

Lingua principale
PHP
Stelle
15
Fork
10
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Automattic/pushpress

Tutte le issue di Automattic/pushpress

Issue simili

Altre issue su PHP

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.