How to set up membership-only downloads
There are a few ways to do this.  I've done something very similar on Drupal but not Wordpress, but there are two different answers depending on your situation:


If membership entitles someone to download any/all publications, then the easiest approach would be to use CiviCRM WP Member Sync in conjunction with Groups.  Make your download pages available only to a Wordpress user role called "Members".  Use Civi-WP Member Sync to make any CiviCRM contacts with an active membership also have the "Member" user role.  And of course, enable signing up for a Wordpress account in the membership signup profile.
If you must pay an additional fee for each publication on top of membership, you'll want to do the above, but also add WooCommerce or another Wordpress e-commerce module.  This is significantly more setup, but if you make your commerce pages available only to members using the approach outlined above, you'll have very fine-grained control.