Child Pays For Parent is a way to speed up a stuck, low-fee transaction without replacing it. The receiver (or the sender, via a change output) creates a new transaction, the child, that spends an output of the stuck parent and pays a high fee.
Why miners take both
The child is only valid if the parent is also in a block. Miners select transactions by the feerate of the whole package (ancestors included), so a high-paying child makes the combined package attractive.
Limits
Nodes cap how many connected unconfirmed transactions they keep. Newer policies like package relay and v3 (TRUC) transactions, shipped in Bitcoin Core 28.0, make CPFP more reliable for contracts like Lightning.