Lo primero que tienes que saber es que esas categorías, subcategorías y su contenido deberán estar almacenadas en algún sitio: .txt, un array de php o una base de datos (altamente recomendable).
Digamos que vas a utilizar una base de datos:
Entonces necesitas al menos dos tablas "categorías" y "enlaces":
---------------------------------------
Tabla Categorías:
id_categoria, nombre_categoria, descripción_categoria, etc...
Tabla Enlaces:
id_enlace, id_categoria (a la que pertence este enlace), titulo_enlace, url_enlace, etc.
-----------------------------------------
Con eso ya tendrás bastante. Si lo que quieres es tener subcategorías, puedes simplemente agregar un campo en la tabla "Categorias" llamado "id_padre" (que tendrá el id de la categoría a la que pertenece). De esta manera, no limitas la profundidad del árbol de categorías.
Espero que se haya entendido. El resto será simplemente escribir y leer en esa base de datos.
Saludos