Shortcode attributes should be all lowercase
A Note on Security
There are 2 major security issues in your shortcode:
extract
is dangerous as it can overwrite variables, it would be much safer to use$ID = ! empty( $atts['ID'] ) ? $atts['ID'] : null;
instead. You might see this in a lot of examples but this is because copy pasting is popular and people are unaware, not because it’s ok. Never useextract()
under any circumstances if you value security and safety.- There is no escaping on your variables, when you output values you should escape dynamic values, e.g.
<a href="'.$linkURL.'">
should be<a href="'.esc_url( $linkURL ).'">
. This guarantees that only a URL can go in thehref
part, even if something malicious is inserted that tries to break out.