NOW Finance Social Content Importer reads posts and media from supported social APIs and stores them in WordPress. Imports include descriptions, hashtags, dates, and available engagement counts.
New imports are drafts. Automatic imports, public REST access, and local MP4 downloads are off by default. The responsive [nsci_content_feed] shortcode displays published items without requiring ACF, Elementor, or FileBird.
You supply and maintain each provider’s developer app, credentials, account access, and approvals. Installing the plugin does not grant API access.
Features
- TikTok Display API imports with OAuth and token refresh.
- Instagram Graph API imports for supported professional accounts.
- LinkedIn Posts API imports for approved organization integrations and member integrations that already have access.
- Draft-first imports, source-ID deduplication, and update-only imports.
- Guarded image and optional video downloads.
- Manual imports, WP-Cron schedules, WP-CLI commands, and an administrator REST import route.
- A plugin-managed post type or an existing post type, with field mapping to ACF, JetEngine/Crocoblock, or WordPress metadata.
- Optional native field editor and responsive feed shortcode.
Shortcodes
Imported content feed
[nsci_content_feed] displays published imported items in a responsive grid.
count: 1 to 100 posts; default 12.source: Optionaltiktok,instagram, orlinkedinfilter.columns: 1 to 4 columns; default 3.
Example: [nsci_content_feed source="instagram" count="6" columns="2"]
Social slider and popup
Add [nsci_content_slider source="instagram,tiktok,linkedin" media="both" account="@nowfinance"] to a page’s Shortcode block or an Elementor Shortcode widget.
source: Comma-separatedinstagram,tiktok, and/orlinkedin; omitted means all three.media:video,image, orboth(default).count: 1 to 100 posts; default 12. Only published, unprotected imported posts with media appear.height: Card height in pixels (200 to 1000); default 500. Images and videos fill the portrait card.popup_height: Dialog height; defaults to85vh(85% of the visible screen height). A pixel height from 400 to 1200 can override it, constrained to the screen.account: Profile name shown in the popup. Defaults to the TikTok handle from its post URL or the WordPress site name.avatar: Optional profile image URL. Otherwise an account initial is shown.interval: Time between one-card advances in milliseconds (1000 to 30000); default 3000.duration: Animation time in milliseconds (100 to 2000); default 600. Cards move left to right, one at a time.instagram_profile,tiktok_profile,linkedin_profile: Profile URLs for the popup account/avatar and platform icon; default to NOW Finance’s matching profiles.autoscroll:true(default) orfalse. Hover/focus pauses automatic movement. Each mouse-wheel/trackpad burst, drag release, or horizontal swipe advances exactly one card. Positive wheel input and dragging right move cards left to right; reverse input moves them back. Reduced-motion preferences disable automatic scrolling, while muted video previews remain enabled. There are no slider navigation or pause buttons.
Examples:
- Videos only: [
nsci_content_slider source="instagram,tiktok" media="video" account="@nowfinance"] - Images only: [
nsci_content_slider source="instagram,linkedin" media="image" account="NOW Finance"] - All media: [
nsci_content_slider media="both" height="500" popup_height="85vh" account="@nowfinance"]
Cards have 24px rounded corners and show a platform icon; hover or keyboard focus reveals the caption, likes, and comments. On touchscreens the caption is always visible. Select a card to open the scrollable popup with the full description, account, date, engagement, and original-platform link. Account/avatar and platform icons open the matching profile; likes, comments, and View on links open the original post. Escape, the centered close icon, or the backdrop closes it. Popup media fills its frame using cover cropping. The popup fits smaller screens and traps keyboard focus while open. Its details sit at the bottom, while the media grows to fill the remaining height. Long captions remain scrollable.
Videos play muted in the slider. Local videos continue in the popup using the same player and position; TikTok restores its last reported timestamp through the player API. A bottom-right mute icon toggles sound. Tap the video to pause or resume and use the timeline to seek. Swipe up or down over popup media or text to scroll its content. Native file videos use browser timeline controls; TikTok uses plugin playback and timeline controls so vertical swipes stay within the popup.
Instagram and LinkedIn videos require a playable MP4. Enable local MP4 downloads, then run Resolve Videos to populate video_mp4_url/video_mp4_attachment_id. Resolve Videos also repairs mapped fields when a downloaded attachment already exists. The slider prefers managed local attachments over provider URLs, supports file-array/attachment-ID field formats, and recovers TikTok players from video permalinks if old IDs or media classifications are missing. Existing direct video files in video_url are also supported. TikTok uses its official embedded player when no local file exists. Videos without a playable source display their cover and original-platform link. Browser autoplay policies, unavailable posts, and provider restrictions can prevent playback. Images stay static. Multiple sliders can use different filters on the same page.
If Instagram covers appear but videos do not play, run Resolve Videos to replace expired provider CDN links with local MP4s. Clear the site’s page/CDN cache after updating the plugin or resolving media so cached shortcode HTML does not retain old players or video URLs.
TikTok players contact TikTok when a preview becomes visible or a popup opens. Other media use the stored media URLs. No third-party player SDK is loaded. See TikTok’s player documentation for supported controls.
Single content field
[nsci_content_field field="short_description"] displays one mapped field.
field: Required registered field key.post_id: Optional destination post ID; defaults to the current post.fallback: Optional text shown when the field is empty.
Example: [nsci_content_field field="like_count" post_id="123" fallback="0"]
Field mappings change where values are stored; registered shortcode field keys stay the same.
External services
The plugin contacts a provider only after an administrator connects an account, tests a connection, or starts an import. Depending on the provider and action, it sends access tokens, account or author identifiers, requested content fields, paging cursors, or OAuth data. It receives posts, media URLs, account data, engagement counts, and token responses. The plugin developer receives no telemetry.
TikTok
Used for Login Kit OAuth, token management, profile checks, and reading the connected user’s public videos through the Display API.
- Service: https://developers.tiktok.com/
- Developer Terms: https://www.tiktok.com/legal/page/global/tik-tok-developer-terms-of-service/en
- Terms of Service: https://www.tiktok.com/legal/page/global/terms-of-service/en
- Privacy Policy: https://www.tiktok.com/legal/page/row/privacy-policy/en
Meta / Instagram
Used to read media and account data for a configured professional Instagram account through the selected Instagram Graph API host.
- Service: https://developers.facebook.com/docs/instagram-platform/
- Platform Terms: https://developers.facebook.com/terms/
- Privacy Policy: https://www.facebook.com/privacy/policy/
Used to read posts, media assets, and social-action counts for the configured LinkedIn author. Community Management API access and permissions are controlled by LinkedIn.
- Service: https://learn.microsoft.com/en-us/linkedin/marketing/community-management/community-management-overview
- App review: https://learn.microsoft.com/en-us/linkedin/marketing/community-management/community-management-app-review
- API Terms of Use: https://www.linkedin.com/legal/l/api-terms-of-use
- User Agreement: https://www.linkedin.com/legal/user-agreement
- Privacy Policy: https://www.linkedin.com/legal/privacy-policy
Privacy
Credentials and tokens are stored encrypted in the WordPress database. Imported posts, provider identifiers, import history, and downloaded media are stored locally. Public REST access is off by default. When enabled, published imported content can be read through the plugin endpoint and, for supported post types, the WordPress core REST endpoint.
Site owners are responsible for disclosing connected providers, imported content, retention, and public presentation in their privacy policy. The plugin adds suggested wording to the WordPress Privacy Policy Guide. Only import and locally copy media you are authorized to use; provider terms and access policies still apply.