At a high-level (there are a few exceptions), everything on a public blockchain such as Algorand or Ethereum is public.
You can use smart contract to restrict writing but you cannot use them to restrict reading.
Restriction on reading content needs to happen using other means.
The simplest of them is to have a server provide the article when the user shows that they control an account with a specific authorization (as specified by the smart contract -local storage on Algorand- or ownership of an NFT).
If you want to prevent copy of the paid content, you would need to add DRM.
Note that you most likely never want the content to be on-chain as blockchains are not meant to store large amount of data: storing data on-chain is very expensive. There are other blockchain-world solution for storing data such as IPFS.
If you use IPFS, you can store on chain the link to the article on IPFS.
The article may be encrypted, in which case your right management server would only store keys for decryption and provide them with the right proof (e.g., as proposed above proof of control of an account owning some NFT).
There are currently, to my knowledge, no real practical off-the-shelf way to have the blockchain really directly manage the decryption keys so that a smart contract can directly allow decryption of an article under specific condition (like an active subscription).
There are cryptographic solutions but they would need to be implemented by experts in cryptography and may have different trade-offs and trust model.