{"id":345699,"date":"2026-08-18T02:59:18","date_gmt":"2026-08-18T02:59:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tumpu-articles\/"},"modified":"2026-08-18T02:59:00","modified_gmt":"2026-08-18T02:59:00","slug":"tumpu-articles","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/tumpu-articles\/","author":23538636,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.1","stable_tag":"1.6.1","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Tumpu Articles","header_author":"Lukman","header_description":"Mesin artikel otomatis: terima kiriman dari sistem otomasi lewat REST API atau buat sendiri memakai penyedia AI pilihan Anda, lalu terbitkan ke arsip yang tetap bisa diedit.","assets_banners_color":"353428","last_updated":"2026-08-18 02:59:00","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/tumpupress.com","header_plugin_uri":"https:\/\/tumpupress.com","header_author_uri":"https:\/\/lukmankhim.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.6.1":{"tag":"1.6.1","author":"lukmankhim","date":"2026-08-18 02:59:00"}},"upgrade_notice":{"1.2.0":"<p>Adds a configurable archive slug and a default author option.<\/p>","1.1.0":"<p>Adds AI provider selection. Existing settings are migrated automatically.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3651935,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3651935,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3651970,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3651970,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.6.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The settings page with connection, API key, prompt, and schedule.","2":"The article list in the admin area with a source column.","3":"The article archive as seen by visitors."}},"plugin_section":[],"plugin_tags":[569,529,1794,23853,186],"plugin_category":[55],"plugin_contributors":[276188],"plugin_business_model":[],"class_list":["post-345699","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-content","plugin_tags-custom-post-type","plugin_tags-rest-api","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-lukmankhim","plugin_committers-lukmankhim"],"banners":{"banner":"https:\/\/ps.w.org\/tumpu-articles\/assets\/banner-772x250.png?rev=3651970","banner_2x":"https:\/\/ps.w.org\/tumpu-articles\/assets\/banner-1544x500.png?rev=3651970","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tumpu-articles\/assets\/icon-128x128.png?rev=3651935","icon_2x":"https:\/\/ps.w.org\/tumpu-articles\/assets\/icon-256x256.png?rev=3651935","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Tumpu Articles connects automation workflows to WordPress. It works in two ways\nthat can be used together.<\/p>\n\n<p><strong>1. Receive from outside<\/strong><\/p>\n\n<p>Automation tools such as Node-RED, n8n, or Make send articles through a REST API\nusing bearer token authentication. This suits setups where the writing process\nalready runs elsewhere.<\/p>\n\n<p><strong>2. Generate on its own<\/strong><\/p>\n\n<p>Choose an AI provider, enter your API key, then set a schedule. The plugin calls\nthe service and saves the result, with no extra server required.<\/p>\n\n<p>Supported providers: DeepSeek, OpenAI, Google Gemini, Anthropic Claude, and any\nservice that uses an OpenAI-compatible request format through the custom endpoint\noption.<\/p>\n\n<p><strong>Main features<\/strong><\/p>\n\n<ul>\n<li>Article archive with its own permalink<\/li>\n<li>Every article stays a normal editable entry, usable with the block editor or a page builder<\/li>\n<li>A shortcode to place an article list on any page<\/li>\n<li>HTML sanitizer that removes scripts, inline styles, event attributes, and duplicate top-level headings<\/li>\n<li>Duplicate-topic prevention based on titles already published<\/li>\n<li>A log of the last fifty activities<\/li>\n<li>New articles are saved as drafts by default<\/li>\n<\/ul>\n\n<p><strong>Shortcode<\/strong><\/p>\n\n<pre><code>[tumpu_articles jumlah=\"6\" kolom=\"3\" excerpt=\"ya\" gambar=\"ya\"]\n<\/code><\/pre>\n\n<h3>External services<\/h3>\n\n<p>This plugin can contact a third-party service, but only after the administrator\nselects a provider, enters an API key, and then presses the generate button or\nenables the scheduled task. If the API key field is left empty, no data is sent\nanywhere. Only the provider you select is contacted.<\/p>\n\n<p><strong>Data sent to any provider<\/strong><\/p>\n\n<p>The prompt text you write on the settings page, the selected model name, a token\nlimit, and the titles of articles already published on the site. The titles are\nsent so the model does not repeat the same topics. No visitor data is sent.<\/p>\n\n<p><strong>When it is sent<\/strong><\/p>\n\n<p>Only when the generate button is pressed, when the connection test is run, or\nwhen the scheduled task runs.<\/p>\n\n<p><strong>DeepSeek<\/strong>\nEndpoint: https:\/\/api.deepseek.com\nTerms: https:\/\/platform.deepseek.com\/downloads\/DeepSeek%20Terms%20of%20Use.html\nPrivacy: https:\/\/cdn.deepseek.com\/policies\/en-US\/deepseek-privacy-policy.html<\/p>\n\n<p><strong>OpenAI<\/strong>\nEndpoint: https:\/\/api.openai.com\nTerms: https:\/\/openai.com\/policies\/terms-of-use\nPrivacy: https:\/\/openai.com\/policies\/privacy-policy<\/p>\n\n<p><strong>Google Gemini<\/strong>\nEndpoint: https:\/\/generativelanguage.googleapis.com\nTerms: https:\/\/ai.google.dev\/gemini-api\/terms\nPrivacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Anthropic Claude<\/strong>\nEndpoint: https:\/\/api.anthropic.com\nTerms: https:\/\/www.anthropic.com\/legal\/consumer-terms\nPrivacy: https:\/\/www.anthropic.com\/legal\/privacy<\/p>\n\n<p><strong>Custom endpoint<\/strong>\nWhen the custom endpoint option is chosen, the destination is entirely defined by\nthe user. Review that service's terms and privacy policy before using it.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed by Lukman (https:\/\/lukmankhim.com) for TumpuPress\n(https:\/\/tumpupress.com), a studio serving the digital needs of the interior,\narchitecture, and premium material industry in Indonesia.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>tumpu-articles<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the Plugins menu.<\/li>\n<li>Activate the plugin through the Plugins menu.<\/li>\n<li>Open Articles then Settings.<\/li>\n<li>Copy the endpoint URL and token to use an external automation tool, or enter an API key to let the plugin generate articles on its own.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20ai%20providers%20are%20supported%3F\"><h3>Which AI providers are supported?<\/h3><\/dt>\n<dd><p>DeepSeek, OpenAI, Google Gemini, and Anthropic Claude are available as direct\noptions. Other services that use an OpenAI-compatible request format can be used\nthrough the custom endpoint option.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20use%20an%20ai%20service%3F\"><h3>Do I have to use an AI service?<\/h3><\/dt>\n<dd><p>No. If the API key field is left empty, the plugin only works as a receiver\nthrough the REST API and does not contact any external service.<\/p><\/dd>\n<dt id=\"how%20do%20i%20send%20an%20article%20from%20an%20automation%20tool%3F\"><h3>How do I send an article from an automation tool?<\/h3><\/dt>\n<dd><p>Send a POST request to <code>\/wp-json\/tumpu\/v1\/article<\/code> with the header\n    Authorization: Bearer TOKEN and a JSON body containing the <code>judul<\/code> and <code>konten<\/code>\nfields. The <code>status<\/code> and <code>excerpt<\/code> fields are optional.<\/p><\/dd>\n<dt id=\"where%20are%20articles%20shown%3F\"><h3>Where are articles shown?<\/h3><\/dt>\n<dd><p>In the <code>\/article<\/code> archive. An article list can also be placed on any page using\nthe <code>[tumpu_articles]<\/code> shortcode.<\/p><\/dd>\n<dt id=\"can%20the%20articles%20be%20edited%3F\"><h3>Can the articles be edited?<\/h3><\/dt>\n<dd><p>Yes. Each article appears under the Articles menu and can be edited like a normal\nentry.<\/p><\/dd>\n<dt id=\"why%20are%20articles%20saved%20as%20drafts%3F\"><h3>Why are articles saved as drafts?<\/h3><\/dt>\n<dd><p>As a safeguard so the output can be reviewed first. The default status can be\nchanged on the settings page.<\/p><\/dd>\n<dt id=\"is%20my%20data%20removed%20when%20the%20plugin%20is%20deleted%3F\"><h3>Is my data removed when the plugin is deleted?<\/h3><\/dt>\n<dd><p>Settings, the activity log, and the title list are removed. Articles that have\nalready been created are deliberately kept so your content stays safe.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Moved the settings-page script into a properly enqueued file instead of inline output.<\/li>\n<li>Updated the plugin header URI.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added a choice to store articles as a separate article type or as standard posts, so content stays visible even if the plugin is removed.<\/li>\n<li>Added one-click bulk conversion between the two storage types. Converting standard posts back only affects posts created by this plugin, leaving the site's own posts untouched.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added a built-in grid layout for the article archive, so an existing archive URL already linked in a site menu looks clean without depending on the theme. Can be turned off.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added a welcome and setup screen shown once after activation, guiding the blog page, author, and content source choices.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added a one-click Blog page that lists articles in a grid, created automatically on activation so nothing shows up empty.<\/li>\n<li>The shortcode gains a sumber attribute to list plugin articles, standard posts, or both.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>The archive slug is now configurable, so each site can match its own structure (for example blog or artikel). Permalinks refresh automatically on save.<\/li>\n<li>Added a global default author for articles created through automation or AI.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added an optional developer credit line that can be shown below the article list, off by default.<\/li>\n<li>AI provider is now selectable: DeepSeek, OpenAI, Google Gemini, Anthropic Claude, and a custom endpoint.<\/li>\n<li>The model field offers provider-specific suggestions and remains free to type.<\/li>\n<li>Existing settings are migrated automatically on update.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Receive articles from automation tools through a REST API, or generate them with your chosen AI provider, then publish to an editable archive.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345699"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lukmankhim"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345699"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345699"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345699"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345699"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345699"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}