| 开发者 | hafenstudios |
|---|---|
| 更新时间 | 2026年10月12日 21:29 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
your-site.com/go/product)rel="nofollow" / rel="sponsored", query-parameter forwarding$1–$9 back-references, validated when you save and testable against a sample URL before going live[linkjet] shortcode for clean affiliate anchors in your content/wp-json/linkjet/v1/, authenticated via Application PasswordsGET/POST /wp-json/linkjet/v1/linksGET/PUT/DELETE /wp-json/linkjet/v1/links/<id>GET /wp-json/linkjet/v1/links/<id>/clicksGET/POST /wp-json/linkjet/v1/categoriesDELETE /wp-json/linkjet/v1/categories/<id>GET /wp-json/linkjet/v1/statsGET/PUT /wp-json/linkjet/v1/settingsPOST /wp-json/linkjet/v1/links/test-pattern (validate a regular expression and test it against a sample path)GET /wp-json/linkjet/v1/404s (add ?noise=0 for real 404s, ?noise=1 for scanner/bot noise) and POST /wp-json/linkjet/v1/404s/<id>/redirectGET /wp-json/linkjet/v1/exportPOST /wp-json/linkjet/v1/import (?mode=replace to overwrite)GET /wp-json/linkjet/v1/openapi (machine-readable API manifest)manage_linkjet capability, which is granted to administrators automatically and can optionally be granted to editors. A machine-readable OpenAPI manifest is available at /wp-json/linkjet/v1/openapi, ready to import into Postman, Insomnia or any API client.
linkjet folder to /wp-content/plugins/, or install it through the Plugins screen.No. Everything described above is part of this plugin, without usage limits, feature locks or upgrade banners in your admin area. There is a separate paid add-on (Linkjet Pro) for agency-style extras such as geo/device targeting, split tests, a broken-link checker and scheduled client reports, but this plugin never asks you to buy it and works completely on its own.
Yes. The import wizard reads both the classic Pretty Links tables and the new v4 custom-table data model, and it reads the columns that are actually present – so half-migrated installations are imported as far as the data allows instead of failing. Entries without a target URL are reported separately rather than silently skipped.
No. Click tracking is first-party and stays in your own database. No external analytics, no CDN calls.
Use the REST API under /wp-json/linkjet/v1/ with an Application Password (Users → Profile → Application Passwords). The OpenAPI manifest at /wp-json/linkjet/v1/openapi describes every endpoint and can be imported into any API client.
Yes. The import wizard (Linkjet → Import wizard) detects both plugins' database tables and imports your links with one click, optionally including click statistics.
Since version 1.5.4, new clicks are stored without IP address and user agent. Clicks recorded with an earlier version keep their IP address (shortened if IP anonymisation was switched on) and user agent until the click log retention deletes them; with the default retention of 0 days they are kept. Bots are not counted, country is only read from headers your server/CDN already provides (no external GeoIP database), and click logs can be auto-deleted after a chosen retention period.
Drop an MIT-licensed qrcode.min.js (e.g. davidshimjs/qrcodejs) into admin/assets/. The plugin makes no external calls; the QR button appears only when the library is present.
Please use the plugin's support forum on WordPress.org. Linkjet is developed by hafenstudios (https://hafenstudios.com); you can also reach us at info@hafenstudios.com.
/$1) can no longer send visitors to a foreign site. Linkjet checks the target after the placeholders are filled in, the way a browser reads it (backslashes, encoded slashes and a scheme without // included), and only allows the host the rule itself names; before, the request /go//evil.com produced the target //evil.com. Targets such as http:$1 or https:/$1, where a placeholder would decide the host, are refused when the rule is saved.?tag=….=, +, - or @, so spreadsheet programs do not run them as formulas. Linkjet's own CSV import removes the prefix again.%20 or %C3%A4) were damaged when a link was saved in the admin form. They are stored unchanged again, as they already were through the REST API./%C3%9Cber-uns match again, regular-expression redirects also match paths with spaces, and forwarded parameters keep their values (kaffee%20maschine no longer turns into kaffeemaschine).llms.txt, old-page.html or Über-uns become working redirects. If a 404 path still cannot be matched, or belongs to WordPress itself, turning it into a redirect is refused with a message and the entry stays open, instead of creating a rule that never fires./shop, a path like /shopping-guide is no longer shortened to ping-guide.%C3%9Cber-uns is stored as Über-uns, and regex patterns keep named groups such as (?<id>…).wp-sitemap.xml, wp-comments-post.php, wp-signup.php or xmlrpc.php. Saving such a slug is refused with a message.$1–$9 are available in the target URL.wp-config, phpmyadmin, cgi-bin and friends). The badge counts real 404s only, noise has its own tab, and a configurable row limit rotates the log automatically so it cannot grow forever.POST /links/test-pattern and a noise filter on GET /404s; both are documented in the OpenAPI manifest.linkjet_link_deleted for each link so add-ons can clean up their data (previously only single deletes did).linkjet_links_purged action fires when a backup import replaces all links – add-ons must clear link-related data there because link IDs are reused after the reset.nofollow setting is now also applied to the redirect itself via an X-Robots-Tag: nofollow response header – previously it only affected shortcode/block HTML, so search engines still followed cloaked affiliate redirects. Links with nofollow disabled stay dofollow (no header). New filter linkjet_redirect_robots to customise the directives (e.g. add noindex).linkjet_before_redirect, linkjet_redirect_target, linkjet_click_logged, linkjet_link_created/_updated/_deleted, linkjet_admin_menu, linkjet_admin_tabs, linkjet_link_edit_fields, linkjet_after_save_link, linkjet_settings_fields, linkjet_after_save_settings, linkjet_link_row_actions, linkjet_rest_prepare_link). See HOOKS.md.manage_linkjet capability – administrators always keep access; editors can optionally be granted access without full admin rights./settings) and a machine-readable API manifest (/openapi)./export & /import).