Dachte eigentlich auch, dass ein include in dem Moment eingebunden wird, zu dem die Code-Ausführung den Ort des Include erreicht.
Mit der recursive-Option von mkdir, die Du ja eh schon entdeckt hast, solltest Du Deinen Code deutlich kompakter formulieren können:
$path = '../news/' . date('Y') . '/' . date('m');
if (!file_exists($path)){
mkdir($path, 0777, true);
include 'artikel.php';
ALLERDINGS frage ich mich, warum Du die Existenz des Jahr/Monat Pfades sicherstellen musst, bevor Du artikel.php einbindest. Wenn artikel.php diesen Pfad voraussetzt - ist es dann nicht die Pflicht dieses Scripts, sich um seinen eigenen Kram zu kümmern?
Rolf