{"id":358928,"date":"2026-08-29T22:02:18","date_gmt":"2026-08-29T22:02:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/titula\/"},"modified":"2026-08-29T22:02:03","modified_gmt":"2026-08-29T22:02:03","slug":"titula","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/titula\/","author":23555200,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Titula","header_author":"ACAART","header_description":"Beautiful articles, clear structure. Editorial analysis, internal link suggestions you approve, an automatic table of contents and answer-first components \u2014 with word counts, permalinks and typography that are correct for Arabic. Adds no schema and no meta tags, so it works alongside your SEO plugin instead of competing with it.","assets_banners_color":"fcfcfd","last_updated":"2026-08-29 22:02:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/acaart.com\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":1,"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":"abourri","date":"2026-08-29 22:02:03","revision":3671909}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3671909,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3671909,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3671909,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3671909,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1113,19933,12158,5811,10851],"plugin_category":[],"plugin_contributors":[278217],"plugin_business_model":[],"class_list":["post-358928","plugin","type-plugin","status-publish","hentry","plugin_tags-arabic","plugin_tags-internal-linking","plugin_tags-readability","plugin_tags-rtl","plugin_tags-table-of-contents","plugin_contributors-abourri","plugin_committers-abourri"],"banners":{"banner":"https:\/\/ps.w.org\/titula\/assets\/banner-772x250.png?rev=3671909","banner_2x":"https:\/\/ps.w.org\/titula\/assets\/banner-1544x500.png?rev=3671909","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/titula\/assets\/icon-128x128.png?rev=3671909","icon_2x":"https:\/\/ps.w.org\/titula\/assets\/icon-256x256.png?rev=3671909","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Most plugins in this space stop at generating a table of contents. Titula\nstarts there and then does the two things that actually take an editor's time:\nit tells you what is structurally wrong with an article, and it finds places\nwhere your articles could link to each other.<\/p>\n\n<h4>What makes it different<\/h4>\n\n<p><strong>Editorial Readiness.<\/strong> Open a post and Titula reports five dimensions \u2014\nAnswer Clarity, Content Structure, Reader Experience, Internal Linking, Search\nand AI Readiness \u2014 with a plain sentence and a short list of what to fix. It\nnames specific problems: a skipped heading level, an introduction that buries\nthe answer, a section running long without a subheading, images missing\ndimensions. There is no word-count target, no keyword density and no keyword\nrepetition in the model, because none of those measure whether an article is\ngood.<\/p>\n\n<p><strong>Internal link suggestions you approve.<\/strong> Titula reads your published articles\nand finds places where one could link to another. Each suggestion shows the\nsource, the destination, the sentence around it, a score and the reason. You\naccept or ignore it.<\/p>\n\n<p>Accepting one never rewrites your post. The decision is stored and the link is\napplied when the page renders, so your content stays exactly as you wrote it\nand any choice can be undone. The anchor is always a phrase your article\nalready contains \u2014 nothing is reworded, and no keyword is forced in. Links are\nnever placed inside existing links, headings, code or captions.<\/p>\n\n<h4>Arabic and RTL, handled properly<\/h4>\n\n<p>Measurement built for the Latin alphabet gives wrong answers in Arabic, and\nmost plugins never notice. PHP's own <code>str_word_count()<\/code> returns zero for Arabic\ntext, so reading times on Arabic sites are frequently nonsense.<\/p>\n\n<p>Titula counts by Unicode word boundaries, strips diacritics and the tatweel\nbefore measuring since neither is a letter, discards punctuation-only tokens,\nand times Arabic and Latin words at separate adjustable speeds. Heading anchors\nstay readable in Arabic instead of collapsing into numbered fragments.<\/p>\n\n<p>Three optional extras for Arabic publishers:<\/p>\n\n<ul>\n<li><strong>Latin permalink suggestions.<\/strong> WordPress percent-encodes Arabic slugs, so a\ntitle becomes a URL of the form <code>%d8%a7%d9%84<\/code>. Valid, but unreadable once\ncopied, printed or read aloud. Titula suggests a transliteration in the\neditor with a checkbox to apply it, warns you when the post is published and\nchanging it would break existing links, and never changes anything on its\nown. Arabic permalinks are a legitimate choice.<\/li>\n<li><strong>Hijri dates,<\/strong> shown beside the Gregorian date rather than replacing it.\nThe machine-readable date in the markup stays Gregorian, as the HTML\nspecification requires. Where the <code>intl<\/code> extension is available the Umm\nal-Qura calendar is used; otherwise a tabular calculation, which can differ\nfrom an announced date by a day, so a manual adjustment is provided.<\/li>\n<li><strong>Arabic typography.<\/strong> Raises line height, which the script needs because\nletters carry taller ascenders and deeper descenders and diacritics sit above\nand below the line. Just as importantly it resets <code>letter-spacing<\/code>: Arabic\nletters join, and spacing them apart pulls the joins open. Themes designed\nfor Latin text set letter-spacing on headings routinely, and it looks correct\nin their previews because those previews are in English.<\/li>\n<\/ul>\n\n<h4>Reading experience<\/h4>\n\n<ul>\n<li>Table of contents from your H2 and H3 headings, with stable anchors that stay\nreadable in Latin, Arabic and accented scripts. Long lists collapse behind a\n\"View all sections\" control.<\/li>\n<li>Quick Answer, Key Takeaways and Article Summary, shown above the table of\ncontents so a reader who wants only the answer finds it first.<\/li>\n<li>FAQ, facts, pros and cons, steps, checklist, related reading and an author\nbox. Every component optional; one with an empty field renders nothing.<\/li>\n<li>Tables that take their colours from your theme's own palette rather than\nimposing a second one, and that reorganise on a phone instead of asking the\nreader to drag them sideways. A table of three to seven columns becomes one\ncard per row, each value labelled with its own column heading. Very wide\nreference tables keep their scroll, because a card that long stops being\nreadable. Nothing is ever hidden: a phone reader sees exactly what a desktop\nreader sees.<\/li>\n<\/ul>\n\n<h4>Everything is free<\/h4>\n\n<p>There is no paid version, no upsell, no locked feature and no account.<\/p>\n\n<h4>Performance<\/h4>\n\n<ul>\n<li>Rendered articles are cached and reused until the post or a setting changes.<\/li>\n<li>Content analysis is manual, batched and resumable. It never runs on a visitor\nrequest. Also available as <code>wp titula scan<\/code>.<\/li>\n<li>Stylesheets load only on singular views of a supported post type, split so a\npost with no tables never downloads the table rules. The script loads only\nwhen the article actually has a table of contents or images.<\/li>\n<li>No external requests, no tracking, no jQuery.<\/li>\n<\/ul>\n\n<h4>Articles built as raw HTML are left alone<\/h4>\n\n<p>If you publish some articles as a complete, self-contained HTML layout pasted\ninto a Custom HTML block, Titula detects them and does nothing to them at all:\nno table of contents, no heading anchors, no components, no wrapper, and not\neven a stylesheet request.<\/p>\n\n<p>Detection is deliberately cautious, since wrongly skipping an ordinary article\nis far worse than wrongly processing one. It looks for signals an ordinary post\nnever produces: a <code>style<\/code> element in the content, most of the article sitting\ninside Custom HTML blocks, or heavy inline styling. A long article containing\none small embed block is not affected.<\/p>\n\n<p>Every post also carries a Processing control in the editor, in both the block\nand classic editors, so you can force either answer. Excluded articles are\nstill valid destinations for links from elsewhere: leaving an article alone\nmeans not modifying it, not refusing to point at it.<\/p>\n\n<h4>What Titula does not do<\/h4>\n\n<ul>\n<li>It writes no SEO title, meta description, canonical URL or robots directive.<\/li>\n<li>It produces no structured data, and never modifies schema from another plugin.<\/li>\n<li>It generates no text and contacts no external service or AI model.<\/li>\n<li>It cannot promise a ranking, a Google AI Overview placement or a citation in\nany AI assistant. No plugin can, and this one does not claim to.<\/li>\n<li>It styles nothing outside the article container, so your theme is untouched.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install through Plugins &gt; Add New, or upload the ZIP.<\/li>\n<li>Activate it.<\/li>\n<li>Open Settings &gt; Titula and pick one of the four recommended starting points:\nPeople First, Travel, Technology or Editorial. That is the whole setup.<\/li>\n<li>Optional: run a scan from the Titula dashboard to see internal link\nsuggestions and editorial health.<\/li>\n<\/ol>\n\n<p>Every individual setting is still there under Advanced, but you should not need\nit on day one.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20rank%20math%20or%20yoast%3F\"><h3>Does this replace Rank Math or Yoast?<\/h3><\/dt>\n<dd><p>No, and it is designed not to. Titula adds no schema and no meta tags. Keep\nusing your SEO plugin exactly as you do now.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20theme%20or%20my%20other%20pages%3F\"><h3>Will it change my theme or my other pages?<\/h3><\/dt>\n<dd><p>No. Every CSS rule is scoped inside the article container. Your header, footer,\nsidebar, widgets and every page outside the selected post types are untouched.<\/p><\/dd>\n<dt id=\"does%20it%20modify%20my%20post%20content%20in%20the%20database%3F\"><h3>Does it modify my post content in the database?<\/h3><\/dt>\n<dd><p>No. Components and approved internal links are applied when the page renders.\nYour content stays exactly as you wrote it, and anything you enable can be\nswitched off with no trace left behind.<\/p><\/dd>\n<dt id=\"does%20it%20require%20advanced%20custom%20fields%3F\"><h3>Does it require Advanced Custom Fields?<\/h3><\/dt>\n<dd><p>No. Titula uses ACF when it is present and plain post meta when it is not.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20arabic%20permalinks%3F\"><h3>Will it change my Arabic permalinks?<\/h3><\/dt>\n<dd><p>Only if you tick the box in the editor and save. Nothing happens in bulk,\nnothing happens on activation, and the panel warns you first when the post is\nalready published.<\/p><\/dd>\n<dt id=\"how%20accurate%20is%20the%20hijri%20date%3F\"><h3>How accurate is the Hijri date?<\/h3><\/dt>\n<dd><p>It is calculated, not announced. In most countries the start of a Hijri month\nis declared by observation of the crescent, and no formula predicts that. The\nsettings screen tells you which method your server uses and offers a manual\nadjustment of up to two days.<\/p><\/dd>\n<dt id=\"does%20it%20send%20my%20content%20anywhere%3F\"><h3>Does it send my content anywhere?<\/h3><\/dt>\n<dd><p>No. All analysis runs on your own server. The plugin makes no external requests\nof any kind.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%3F\"><h3>What happens to my data if I uninstall?<\/h3><\/dt>\n<dd><p>Plugin settings are removed. Editorial decisions stored on individual posts,\nsuch as which link suggestions you accepted, are left in place so that\nreinstalling does not lose your work.<\/p><\/dd>\n<dt id=\"will%20it%20improve%20my%20rankings%3F\"><h3>Will it improve my rankings?<\/h3><\/dt>\n<dd><p>It cannot promise that, and no honest plugin can. What it does is make articles\nclearer, better structured and better connected to each other.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<\/ul>","raw_excerpt":"Editorial analysis and reviewable internal link suggestions for your articles, with a table of contents and answer-first components.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358928","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=358928"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/abourri"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358928"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358928"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358928"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358928"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358928"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}