Deprecated: Creation of dynamic property ATTO_PluginUpdate::$license is deprecated in /mnt/storage/stage/www/wp-content/plugins/advanced-taxonomy-terms-order/include/class.atto.plugin-updater.php on line 29
Picture Special: The Vamps' James works out shirtless - Attitude
Deprecated: mb_convert_encoding(): Handling HTML entities via mbstring is deprecated; use htmlspecialchars, htmlentities, or mb_encode_numericentity/mb_decode_numericentity instead in /mnt/storage/stage/builds/streampublishing-attitude-server/latest-1.16.1-1793359797.063729/pugpig-attitude-theme/functions.php on line 974
Skip to main content
Deprecated: mb_convert_encoding(): Handling HTML entities via mbstring is deprecated; use htmlspecialchars, htmlentities, or mb_encode_numericentity/mb_decode_numericentity instead in /mnt/storage/stage/builds/streampublishing-attitude-server/latest-1.16.1-1793359797.063729/pugpig-attitude-theme/functions.php on line 974

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 218

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 116

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 132

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 200

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 225

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 236

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 78

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 96

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 87

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 105

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 69

Home Culture Culture Sexuality

Picture Special: The Vamps’ James works out shirtless

By Josh Haggis

James McVey may be on tour with The Vamps – but that doesn’t mean he can’t sneak in a quick workout on a sunny beach in California. Check out some of his latest Instagram snaps below.

Vamps1Vamps2 Vamps3 Vamps4

If you fancy seeing more of James, check him out looking hot in just his pants here.

More Boys on attitude.co.uk:
Picture Special: ‘The Apprentice’ contestant James Hill
Picture Special: Jake Gyllenhaal’s hottest moments