/** * VideoPress Shortcode Handler * * This file may or may not be included from the Jetpack VideoPress module. */ class VideoPress_Shortcode { /** @var VideoPress_Shortcode */ protected static $instance; protected function __construct() { // By explicitly declaring the provider here, we can speed things up by not relying on oEmbed discovery. wp_oembed_add_provider( '#^https?://videopress.com/v/.*#', 'http://public-api.wordpress.com/oembed/1.0/', true ); add_shortcode( 'videopress', array( $this, 'shortcode_callback' ) ); add_shortcode( 'wpvideo', array( $this, 'shortcode_callback' ) ); add_filter('wp_video_shortcode_override', array( $this, 'video_shortcode_override' ), 10, 4); add_filter( 'oembed_fetch_url', array( $this, 'add_oembed_for_parameter' ) ); $this->add_video_embed_hander(); } /** * @return VideoPress_Shortcode */ public static function initialize() { if ( ! isset ( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Translate a 'videopress' or 'wpvideo' shortcode and arguments into a video player display. * * Expected input formats: * * [videopress OcobLTqC] * [wpvideo OcobLTqC] * * @link http://codex.wordpress.org/Shortcode_API Shortcode API * @param array $attr shortcode attributes * @return string HTML markup or blank string on fail */ public function shortcode_callback( $attr ) { global $content_width; /** * We only accept GUIDs as a first unnamed argument. */ $guid = isset( $attr[0] ) ? $attr[0] : null; if ( isset( $attr['postid'] ) ) { $guid = get_post_meta( $attr['postid'], 'videopress_guid', true ); } /** * Make sure the GUID passed in matches how actual GUIDs are formatted. */ if ( ! videopress_is_valid_guid( $guid ) ) { return ''; } /** * Set the defaults */ $defaults = array( 'w' => 0, // Width of the video player, in pixels 'at' => 0, // How many seconds in to initially seek to 'hd' => true, // Whether to display a high definition version 'loop' => false, // Whether to loop the video repeatedly 'freedom' => false, // Whether to use only free/libre codecs 'autoplay' => false, // Whether to autoplay the video on load 'permalink' => true, // Whether to display the permalink to the video 'flashonly' => false, // Whether to support the Flash player exclusively 'defaultlangcode' => false, // Default language code ); $attr = shortcode_atts( $defaults, $attr, 'videopress' ); /** * Cast the attributes, post-input. */ $attr['width'] = absint( $attr['w'] ); $attr['hd'] = (bool) $attr['hd']; $attr['freedom'] = (bool) $attr['freedom']; /** * If the provided width is less than the minimum allowed * width, or greater than `$content_width` ignore. */ if ( $attr['width'] < VIDEOPRESS_MIN_WIDTH ) { $attr['width'] = 0; } elseif ( isset( $content_width ) && $content_width > VIDEOPRESS_MIN_WIDTH && $attr['width'] > $content_width ) { $attr['width'] = 0; } /** * If there was an invalid or unspecified width, set the width equal to the theme's `$content_width`. */ if ( 0 === $attr['width'] && isset( $content_width ) && $content_width >= VIDEOPRESS_MIN_WIDTH ) { $attr['width'] = $content_width; } /** * If the width isn't an even number, reduce it by one (making it even). */ if ( 1 === ( $attr['width'] % 2 ) ) { $attr['width'] --; } /** * Filter the default VideoPress shortcode options. * * @module videopress * * @since 2.5.0 * * @param array $args Array of VideoPress shortcode options. */ $options = apply_filters( 'videopress_shortcode_options', array( 'at' => (int) $attr['at'], 'hd' => $attr['hd'], 'loop' => $attr['loop'], 'freedom' => $attr['freedom'], 'autoplay' => $attr['autoplay'], 'permalink' => $attr['permalink'], 'force_flash' => (bool) $attr['flashonly'], 'defaultlangcode' => $attr['defaultlangcode'], 'forcestatic' => false, // This used to be a displayed option, but now is only // accessible via the `videopress_shortcode_options` filter. ) ); // Register VideoPress scripts wp_register_script( 'videopress', 'https://v0.wordpress.com/js/videopress.js', array( 'jquery', 'swfobject' ), '1.09' ); require_once( dirname( __FILE__ ) . '/class.videopress-video.php' ); require_once( dirname( __FILE__ ) . '/class.videopress-player.php' ); $player = new VideoPress_Player( $guid, $attr['width'], $options ); if ( is_feed() ) { return $player->asXML(); } else { return $player->asHTML(); } } /** * Override the standard video short tag to also process videopress files as well. * * This will, parse the src given, and if it is a videopress file, it will parse as the * VideoPress shortcode instead. * * @param string $html Empty variable to be replaced with shortcode markup. * @param array $attr Attributes of the video shortcode. * @param string $content Video shortcode content. * @param int $instance Unique numeric ID of this video shortcode instance. * * @return string */ public function video_shortcode_override($html, $attr, $content, $instance) { $videopress_guid = null; if ( isset( $attr['videopress_guid'] ) ) { $videopress_guid = $attr['videopress_guid']; } else { // Handle the different possible url attributes $url_keys = array( 'src', 'mp4' ); foreach ( $url_keys as $key ) { if ( isset ( $attr[ $key ] ) ) { $url = $attr[ $key ]; if ( preg_match( '@videos.(videopress\.com|files\.wordpress\.com)/([a-z0-9]{8})/@i', $url, $matches ) ) { $videopress_guid = $matches[2]; } // Also test for videopress oembed url, which is used by the Video Media Widget. if ( ! $videopress_guid && preg_match( '@https://videopress.com/v/([a-z0-9]{8})@i', $url, $matches ) ) { $videopress_guid = $matches[1]; } break; } } } if ( $videopress_guid ) { $videopress_attr = array( $videopress_guid ); if ( isset( $attr['width'] ) ) { $videopress_attr['w'] = (int) $attr['width']; } if ( isset( $attr['autoplay'] ) ) { $videopress_attr['autoplay'] = $attr['autoplay']; } if ( isset( $attr['loop'] ) ) { $videopress_attr['loop'] = $attr['loop']; } // Then display the VideoPress version of the stored GUID! return $this->shortcode_callback( $videopress_attr ); } return ''; } /** * Adds a `for` query parameter to the oembed provider request URL. * * @param String $oembed_provider * @return String $ehnanced_oembed_provider */ public function add_oembed_for_parameter( $oembed_provider ) { if ( false === stripos( $oembed_provider, 'videopress.com' ) ) { return $oembed_provider; } return add_query_arg( 'for', parse_url( home_url(), PHP_URL_HOST ), $oembed_provider ); } /** * Register a VideoPress handler for direct links to .mov files (and potential other non-handled types later). */ public function add_video_embed_hander() { // These are the video extensions that VideoPress can transcode and considers video as well (even if core does not). $extensions = array( 'mov' ); $override_extensions = implode( '|', $extensions ); $regex = "#^https?://videos.(videopress.com|files.wordpress.com)/.+?.($override_extensions)$#i"; /** This filter is already documented in core/wp-includes/embed.php */ $filter = apply_filters( 'wp_video_embed_handler', 'wp_embed_handler_video' ); wp_embed_register_handler( 'video', $regex, $filter, 10 ); } } VideoPress_Shortcode::initialize(); Steel City Chick on the Go in Charleston, SC – Over 40 & Killing it®

Steel City Chick on the Go in Charleston, SC

November 9, 2017
Thursday night in North Charleston, what’s one to do?  What Trendy Hotspot is there to check out for the grown and sexy? Well, your question has been answered “Smokey’s Place on Remount Road. They don’t have a website but you can find them on Facebook.  What a great time you can have when you least expect it.

I was literally at the gas station right down the road from the Food Lion. They knew I was from out of town. I started talking to the Gentleman at the gas pump. He said hey there’s a nice place right down the road you should check out.

He even offered to come with me to make sure I got there safely and felt comfortable. What happened he ended up staying. I had an amazing time and so did he.

When they say Charleston is a friendly City. It really is. However, being from Pittsburgh and from living Brooklyn, NY, I was very cognizant of my surroundings. I had one drink, one I was driving and two I needed to stay alert.


I love Pittsburgh but I love traveling to cool and beautiful places and Charleston, SC fits the bill. I’ll get more into this beautiful city in another blog post.

Let’s begin on the outside, off of Remount Road you pull into the Food Lion “Southern supermarket” and park the ride.

Heading inside to the left you have booths to the right is where the band performs, DJ booth and some table and chairs.

Head straight bar to the left “square in shape with bar stools around it. Keep going towards the back, pool table off to the right and bathrooms to the left.

Drinks are reasonably priced.  A Jack Daniels and ginger $4.00.  Now, this particular Thursday there was a live music, “blues.” One thing about this Steel City Chick, I love blues and Jack Daniels.

I apologize for my stupidity for not getting the bands name. They were really good.  But before the band gets started, you must indulge in one of Smokey’s eats.

Smokey’s is known for having the bomb burgers but that grilled pork chopped satisfied my palette that night like nobody’s business.  One of the best-grilled pork chops I tasted in a long time.  Smokey’s has an array of food from fried to grilled, sides, burgers, it’s just what you’re in the mood for when you stop in.

Now you’re full with your cocktail in your hand when you hear the first chord of a blues song you then face the stage to hear some soul-shaking blues.  Smokey’s has a lot of artists (mainly local artist) that perform throughout the week.  Since they don’t have a website its hard to know who’s performing.

I do know every Sunday they have a Blues jam session.  When in doubt just call (843) 566-1191.  Smokey’s is open Monday-Saturday 11 am-2 am and Sunday noon-2 am There was no cover, casual dress and at the time I was there smoking (cigarettes) was permitted.  This bar was non-urban when I was there but it doesn’t matter because you will enjoy yourself in a safe and fun environment no matter what race you are.

So if you’re in Charleston, SC or visiting GPS the address 1213 Remount Rd. (Food Lion Shopping Center), North Charleston, South Carolina and head on out to Smokey’s you’ll thank me later.

Let Over 40 & Killing it® be your go-to resource in obtaining the lifestyle you deserve; over 40 dating tips, redefining your style, how to remain ageless, over 40 nightlife, and starting an online business.

I also invite you to share your story, send me an email to kimberly@over40andkillingit.com. In the subject line add, “My Story,” “Advice,” or “My Question.” Your story or advice needs to be heard. We can learn from each other.

Now, grab a cocktail or coffee, sit back, relax and listen my P’cast either on iTunes or Podbean, on how you can start living the Over 40 & Killing it® Lifestyle TODAY!

I love coaching the “Over 40” Nouveau Single Ladies & Gentlemen via my workshops who are re-entering the dating scene or who just want to learn how to be single again, redefine their style or upgrade their lifestyle.

Sign-up for The Single’s Gazette® updates and to receive some really cool and information.

Ready to have some fun? Join my Facebook group. Then connect with me on Instagram, and  Twitter then you will be hooked up to the hottest Over 40 Community; food, fashion, fun, how to leave Singlesville, nightlife and more.

So until we meet again my Dear Friends, Stay Cool, Classy and Keep on Killing It. And remember NEVER, give up! NEVER be denied! You’re NEVER too old! NEVER look back! Peace!


Everything is better, “Over Cocktails or Coffee!” ~~kah

Facebook Comments

You Might Also Like

No Comments

What's on your mind?


Get the latest posts delivered to your mailbox: