{"id":358785,"date":"2026-08-30T17:13:49","date_gmt":"2026-08-30T17:13:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/neuedaten-news-ticker\/"},"modified":"2026-08-30T17:13:15","modified_gmt":"2026-08-30T17:13:15","slug":"neuedaten-news-ticker","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/neuedaten-news-ticker\/","author":23555043,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"Neuedaten News Ticker","header_author":"Bastian Schwabe","header_description":"Announcement bar with headline, teaser and call-to-action button. Manage multiple items, schedule them, rotate them automatically and let long text scroll while the button stays in place.","assets_banners_color":"a18ef8","last_updated":"2026-08-30 17:13:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/bastianschwabe\/neuedaten-news-ticker","header_author_uri":"https:\/\/neuedaten.de\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"bastianschwabe","date":"2026-08-30 17:13:15","revision":3672894}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3672892,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3672892,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3672892,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3672892,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3672892,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3672892,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3672892,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3672892,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"The announcement bar on the front end.","2":"Editing a ticker item, including the optional schedule.","3":"The settings screen."}},"plugin_section":[],"plugin_tags":[7540,784,11026,1290,1247],"plugin_category":[],"plugin_contributors":[278365],"plugin_business_model":[],"class_list":["post-358785","plugin","type-plugin","status-publish","hentry","plugin_tags-announcement","plugin_tags-banner","plugin_tags-marquee","plugin_tags-notification-bar","plugin_tags-ticker","plugin_contributors-bastianschwabe","plugin_committers-bastianschwabe"],"banners":{"banner":"https:\/\/ps.w.org\/neuedaten-news-ticker\/assets\/banner-772x250.png?rev=3672892","banner_2x":"https:\/\/ps.w.org\/neuedaten-news-ticker\/assets\/banner-1544x500.png?rev=3672892","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/neuedaten-news-ticker\/assets\/icon.svg?rev=3672892","icon":"https:\/\/ps.w.org\/neuedaten-news-ticker\/assets\/icon.svg?rev=3672892","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/neuedaten-news-ticker\/assets\/screenshot-1.png?rev=3672892","caption":"The announcement bar on the front end."},{"src":"https:\/\/ps.w.org\/neuedaten-news-ticker\/assets\/screenshot-2.png?rev=3672892","caption":"Editing a ticker item, including the optional schedule."},{"src":"https:\/\/ps.w.org\/neuedaten-news-ticker\/assets\/screenshot-3.png?rev=3672892","caption":"The settings screen."}],"raw_content":"<!--section=description-->\n<p>News Ticker adds a slim announcement bar to your site \u2014 for a sale, a deadline, a service notice or any other message that should not wait for the next blog post.<\/p>\n\n<p>Each announcement is a separate item with its own headline, teaser and button, so you can prepare several of them and switch them on and off one by one. If more than one item is live, the bar rotates between them. If a message is too long for the available width, the text scrolls while the button stays put on the right.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Unlimited announcement items, each with headline, teaser and a button (label + link)<\/li>\n<li>Publish or unpublish items individually, plus an optional start and end date per item<\/li>\n<li>Automatic rotation when several items are live, paused on hover and keyboard focus<\/li>\n<li>Scrolling text only when it is actually needed \u2014 the button never moves<\/li>\n<li>Optional fixed bar at the top of the viewport, with the page content offset automatically<\/li>\n<li>Show the bar on all pages or on the front page only<\/li>\n<li>Place the bar right after the opening body tag, inside any element of your theme, or wherever your template prints it<\/li>\n<li>Optional dismiss button, either remembered across visits or for the current page view<\/li>\n<li>Stylesheet and script can each be switched off if you prefer your own<\/li>\n<li>No dependencies, no external requests, no tracking. Plain CSS and vanilla JavaScript.<\/li>\n<\/ul>\n\n<p><strong>Styling<\/strong><\/p>\n\n<p>The bar ships with a yellow background and black text and exposes every colour as a CSS custom property, so a theme can restyle it without fighting specificity:<\/p>\n\n<pre><code>.neuedaten-news-ticker {\n    --neuedaten-news-ticker-bg: #ffdd00;\n    --neuedaten-news-ticker-fg: #000;\n    --neuedaten-news-ticker-button-bg: #000;\n    --neuedaten-news-ticker-button-fg: #ffdd00;\n}\n<\/code><\/pre>\n\n<p><strong>Placing the bar from your theme<\/strong><\/p>\n\n<p>Set \"Position in the DOM\" to <em>Placed by the theme<\/em> and print it wherever you like \u2014 this renders server side, so there is no layout shift:<\/p>\n\n<pre><code>&lt;?php\nif ( function_exists( 'neuedaten_news_ticker_has_items' ) &amp;&amp; neuedaten_news_ticker_has_items() ) {\n    neuedaten_news_ticker_render();\n}\n?&gt;\n\nneuedaten_news_ticker_get_html() returns the markup instead of printing it, and the `[news_ticker]` shortcode works in content.\n<\/code><\/pre>\n\n<p><strong>For developers<\/strong><\/p>\n\n<ul>\n<li><code>neuedaten_news_ticker_items<\/code> \u2014 filter the items before they are rendered<\/li>\n<li><code>neuedaten_news_ticker_should_render<\/code> \u2014 decide per request whether the bar appears<\/li>\n<li><code>neuedaten_news_ticker_before_render<\/code> \u2014 action fired right before the markup is printed<\/li>\n<li><code>neuedaten_news_ticker_html<\/code> \u2014 filter the final markup<\/li>\n<li><code>neuedaten_news_ticker_settings<\/code> \u2014 filter the resolved plugin settings<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it through the Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Info Ticker<\/strong> and add your first item: headline, teaser, button label and link.<\/li>\n<li>Publish the item.<\/li>\n<li>Adjust <strong>Info Ticker \u2192 Settings<\/strong> if you want a different position, scope or dismiss behaviour.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20deactivate%20a%20single%20announcement%3F\"><h3>How do I deactivate a single announcement?<\/h3><\/dt>\n<dd><p>Set the item to draft. Only published items inside their schedule are shown.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20several%20items%20are%20live%20at%20the%20same%20time%3F\"><h3>What happens if several items are live at the same time?<\/h3><\/dt>\n<dd><p>The bar rotates between them. You can set the interval under Info Ticker \u2192 Settings; rotation pauses while a visitor hovers over the bar or focuses an element inside it.<\/p><\/dd>\n<dt id=\"the%20text%20does%20not%20scroll.%20is%20something%20broken%3F\"><h3>The text does not scroll. Is something broken?<\/h3><\/dt>\n<dd><p>The text only scrolls when it does not fit into the available width. Make the browser window narrower, or use a longer teaser, to see it.<\/p><\/dd>\n<dt id=\"how%20do%20i%20place%20the%20bar%20inside%20my%20own%20header%3F\"><h3>How do I place the bar inside my own header?<\/h3><\/dt>\n<dd><p>Two ways. Without touching your theme, choose \"Inside a target element\" under Info Ticker \u2192 Settings and enter a CSS class or ID, for example <code>.page-header<\/code>. The bar is inserted as the first child of the first matching element; this needs the plugin JavaScript, and the fixed position option is ignored.<\/p>\n\n<p>If you can edit your theme, choose \"Placed by the theme\" instead and call <code>neuedaten_news_ticker_render()<\/code> in your template. That renders server side, so the bar is there from the first paint and reserves its space without a layout shift.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20javascript%3F\"><h3>Does it work without JavaScript?<\/h3><\/dt>\n<dd><p>Yes, with reduced functionality. The first live item is shown, the text is truncated instead of scrolling, and the dismiss button is hidden.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20colours%3F\"><h3>Can I change the colours?<\/h3><\/dt>\n<dd><p>Yes, through the CSS custom properties listed in the description, or by switching the plugin stylesheet off and writing your own.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A lightweight announcement bar with headline, teaser and call-to-action button. Schedule items, rotate them, and let long text scroll.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358785"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bastianschwabe"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358785"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358785"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358785"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358785"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358785"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}