Documentación / Desarrolladores
Los hooks que SwiftLing ofrece a otros plugins y temas. SwiftLing Pro está construido únicamente sobre ellos: no modifica SwiftLing en absoluto.
SWIFTLING_HOOKS es la versión de esta lista. Aumenta cuando se añade o modifica un hook, de modo que un plugin puede comprobar si SwiftLing tiene lo que necesita:
if ( ! defined( 'SWIFTLING_HOOKS' ) || SWIFTLING_HOOKS < 1 ) {
return; // Too old a SwiftLing.
}
tests/HooksTest.php falla si se añade un hook a SwiftLing sin describirlo aquí, o si se describe aquí uno que no existe en SwiftLing.
Pantallas de administración
swiftling_admin_screens
Filtro, desde la versión 1 de los hooks. Las pantallas de administración de SwiftLing, indexadas por el slug de su dirección (admin.php?page=<slug>) y en el orden del menú. Un plugin añade una pantalla al menú o a un grupo; véase swiftling_admin_groups.
| Key | |
|---|---|
menu | Name: the screen’s title, its menu item, and its name in the list of its group. Required. |
view | A name for the screen, unique among the screens. Required. |
file | Path of the PHP file that prints the screen. Without it, admin/views/<view>.php of SwiftLing. |
group | A group of swiftling_admin_groups: the screen is out of the menu, unless it is the group’s first, and shows the group’s header and list. |
part | The part of the group’s list the screen is listed in. Without it, the screen is in the group but not listed. |
icon, tint | The screen’s picture in the list: the path of a 16 by 16 line drawing, on a tile of orange, blue, green, teal, amber, violet or ink. |
hidden | Reachable only by link, never in the menu. |
count | Since hooks 25: a number to show beside the screen’s menu item, as WordPress shows pending comments, such as replies waiting to be read. A screen of a group adds it to the group’s item; SwiftLing’s own item shows the sum of all, so it is seen with the menu closed. 0 shows nothing. |
cap | Since hooks 12: the capability the screen takes; without it, manage_options. The Translations screens and the translation editor take swiftling_translate, see swiftling_can_translate. The menu and the list of a group show a user only the screens they may open. |
before_setup | Since hooks 20: the screen opens before the first setup is answered, as an import that sets the languages up from another plugin’s (swiftling_import_languages()). Until then every other screen leads to the first setup. |
El archivo muestra la pantalla dentro de la página de SwiftLing, con sus estilos. Comienza con SwiftLing\Admin\Ui::screenHeader(), como las vistas de SwiftLing. Se omiten las pantallas sin nombre o sin vista, o cuyo archivo no se pueda leer; una pantalla asignada a un grupo que no existe en SwiftLing aparece como pantalla independiente.
add_filter(
'swiftling_admin_screens',
static function ( array $screens ): array {
$screens['swiftling-glossary'] = array(
'menu' => __( 'Glossary', 'my-plugin' ),
'view' => 'glossary',
'file' => __DIR__ . '/views/glossary.php',
'group' => 'settings',
'part' => 'swiftling',
'icon' => 'M2 4h12M2 8h12M2 12h8',
'tint' => 'violet',
);
return $screens;
}
);
swiftling_admin_groups
Filtro, desde la versión 1 de los hooks. Los grupos de pantallas, indexados por ID: translations y settings. Cada grupo es una entrada de menú con su nombre que abre su primera pantalla; cada una de sus pantallas muestra la cabecera del grupo (name, description) y una lista de sus pantallas organizada en secciones (parts, con los nombres indexados por sección). Un plugin puede añadir un grupo o secciones a un grupo.
add_filter(
'swiftling_admin_groups',
static function ( array $groups ): array {
$groups['settings']['parts']['automatic'] = __( 'Automatic', 'my-plugin' );
return $groups;
}
);
swiftling_setup_offer
Acción, desde la versión 24 de los hooks. Se ejecuta encima de la pregunta del primer paso de configuración, sobre el idioma en que está escrito el sitio, dirigida a quien lo administra. Ahí, otro plugin puede ofrecer una forma de configurar SwiftLing más adecuada para el sitio, como la importación que ofrece SwiftLing Pro de las traducciones de un plugin multilingüe utilizado anteriormente, en una pantalla que se abre antes de la configuración (before_setup, más arriba). Si muestra algo, eso aparece primero y se convierte en el título principal de la página (<h1>); la pregunta aparece después, bajo «o configurar SwiftLing manualmente», con el título un nivel más abajo y un botón secundario. Si no muestra nada, la configuración permanece igual que sin esa acción.
add_action(
'swiftling_setup_offer',
static function (): void {
if ( my_plugin_has_old_translations() ) {
printf( '<section class="swiftling-card"><h1>%s</h1><p><a class="swiftling-button is-primary" href="%s">%s</a></p></section>', esc_html__( 'Bring your translations along', 'my-plugin' ), esc_url( admin_url( 'admin.php?page=my-import' ) ), esc_html__( 'Import', 'my-plugin' ) );
}
}
);
swiftling_setup_aside
Acción, desde la versión 20 de los hooks. Se ejecuta debajo del primer paso de configuración, que pregunta por el idioma en que está escrito el sitio, dirigido a quien lo administra. Otro plugin puede ofrecer configurar los idiomas de otra manera, en una pantalla que se abre antes de la configuración (before_setup, más arriba). Para una propuesta que deba aparecer primero, véase swiftling_setup_offer.
add_action(
'swiftling_setup_aside',
static function (): void {
printf( '<p><a href="%s">%s</a></p>', esc_url( admin_url( 'admin.php?page=my-import' ) ), esc_html__( 'Import from my old plugin', 'my-plugin' ) );
}
);
swiftling_admin_screen_assets
Acción, desde la versión 1 de los hooks. Se ejecuta cuando una pantalla de SwiftLing carga sus scripts y estilos, después de los de SwiftLing. La hoja de estilos de SwiftLing se carga en todas sus pantallas, incluidas las de otros plugins.
string $slug: slug de la dirección de la pantalla, por ejemplo,swiftling-languages.array $screen: la pantalla, tal como la proporcionaswiftling_admin_screens.
add_action(
'swiftling_admin_screen_assets',
static function ( string $slug ): void {
if ( 'swiftling-glossary' === $slug ) {
wp_enqueue_script( 'my-glossary', plugins_url( 'glossary.js', __FILE__ ), array(), '1.0.0', true );
}
}
);
Traducción
swiftling_can_translate
Filtro, desde la versión 12 de los hooks. Determina si un usuario que no administra el sitio puede traducir. Traducir requiere la capacidad swiftling_translate: la tienen quienes poseen manage_options y quienes indique este filtro; no cuenta con tenerla guardada en un perfil, como ocurriría si se asignara mediante un editor de perfiles. SwiftLing Pro se la concede a su perfil de Traductor y a los perfiles seleccionados.
Un traductor que no administra el sitio puede abrir las pantallas de Traducciones y el editor de traducciones y traducir todos los textos, en todos los idiomas, incluso los de elementos que no puede editar, como una plantilla, un formulario o los textos de un tema (swiftling_is_translator()). Los ajustes siguen reservados a quien administra el sitio: idiomas, direcciones, selector de idiomas, servicio, ajustes generales, registros, Traducir todo y las opciones de las pantallas de Traducciones que son ajustes, como qué campos de los términos contienen texto, en qué idiomas se muestran los elementos del menú y la búsqueda de textos de temas y plugins.
bool $can: indica si el usuario puede traducir; es false salvo que otro plugin indique lo contrario.WP_User $user: el usuario.
swiftling_translator_machine
Filtro, desde hooks 13. Determina si un traductor que no administra el sitio puede traducir con el servicio de traducción del sitio, cuyo coste asume quien lo administra (swiftling_can_machine_translate()). Si se deniega el permiso, la ruta de traducción automática devuelve un 403 y el editor de traducciones no ofrece traducción automática, igual que si no hubiera ningún servicio. Quien administra el sitio siempre puede usarla. SwiftLing Pro consulta este filtro en Ajustes › Traductores.
bool $can: true salvo que un plugin indique lo contrario.WP_User $user: el traductor.
swiftling_translation_services
Filtro. Los servicios de traducción automática, indexados por ID. Un plugin puede añadir su propio servicio como subclase de SwiftLing\Translation\Service; la pantalla Servicio de traducción lo muestra junto a los demás.
array<string, Service> $services
Un servicio extiende SwiftLing\Translation\Service, como hace SwiftLing\Translation\Google:
| Method | |
|---|---|
id(), name(), fullName() | deepl; DeepL, as in «Translate with DeepL»; DeepL API. The ID names its settings and the constant that can hold its key, SWIFTLING_DEEPL_API_KEY. |
check( $key ) | Checks a key with the service: array( 'languages' => codes ), or a WP_Error whose message says what to do. Since hooks 5, a service with models to choose from adds 'models' => array( ID => name ), the models the key may use. Since hooks 6, an error whose data has 'reason' => 'billing' is a key that works on an account that cannot pay (no credits, billing off, a spend limit reached): the screen says so as a warning, and the service does not translate until a check passes. |
languageCode( $language ) | The service’s code for a language of swiftling_languages(), or null when it does not translate it. |
translate( $items, $source, $target ) | Translates texts: see the method’s description. Since hooks 5, a language model adds tokens to its answer, the tokens it read and wrote, counted by month beside the characters (Services::tokens()). |
freeCharacters(), pricingUrl() | Optional: characters translated free of charge each month, and the address of its prices. |
quota() | Optional, since hooks 4: the usage of the billing period as the service counts it, array( 'used' => …, 'limit' => … ) (0 for a plan without a limit). The screen shows it instead of freeCharacters(). |
guide() | Optional, since hooks 2: how to get a key, shown on the Translation service screen while the service is not connected. |
defaultModel() | Optional, since hooks 5: the model the service translates with until another is chosen. The Translation service screen offers the models of the last check in a list; model() gives the one chosen, the default, or the first. |
sourceLanguage(), targetLanguage() | Since hooks 9: the languages of the translation under way, as swiftling_languages() gives them, told by setLanguages() before every translate(). A service heeds more than its codes with them: the formal variant of a locale (de_DE_formal is DE to DeepL), or what is set for the language. |
kind() | Optional, since hooks 3: machine (the default), a translation engine billed per character, or ai, a language model billed per token. The Translation service screen lists services in a card per kind, each with SwiftLing’s icon of its kind, never a logo of the service. |
Las claves introducidas en la pantalla Servicio de traducción conservan las letras, los dígitos y los caracteres -, _, : y .. Si hay varios servicios conectados, traduce el que se haya elegido en esa pantalla (Services::current(), desde hooks 2).
SwiftLing\Translation\Markup (desde hooks 2) hace para todos los servicios lo que Google necesita para tratar el HTML: protect() y restore() conservan los atributos de las etiquetas del sitio; keep() y unkeep() conservan los marcadores de posición, las variables de los plugins de SEO (swiftling_seo_variables()) y las palabras que nunca deben traducirse dentro de <span translate="no">; plainToHtml() y htmlToPlain() permiten tratar el texto sin formato como HTML.
swiftling_translation_service
Filtro. El servicio que traduce una página, una plantilla o una lista de términos a un idioma, para que un plugin pueda usar distintos servicios según el idioma o la página.
Service|null $service: el servicio conectado, o null si no hay ninguno.string $subject: la clave de lo que se traduce, por ejemplo,post:12.array $language: el idioma, tal como lo proporcionaswiftling_languages().
Comprobar una página en el servidor
Desde hooks 14, swiftling_server_check( $key, $user_id = null ) comprueba en el servidor la página de un elemento (post:12, template:…, terms:category; consulta swiftling_subject()), igual que el editor de traducciones la comprueba en el navegador, y guarda los resultados. Esto permite traducir sin navegador, en segundo plano, al publicar, mediante la API REST o con WP-CLI. El sitio se solicita a sí mismo las dos páginas de la comprobación mediante una conexión de retorno, como hace Salud del sitio, usando un token firmado válido durante unos minutos para ese elemento y esa página. Las páginas se generan para el usuario indicado (el usuario actual de forma predeterminada), que debe tener permiso para traducir el elemento. La función devuelve lo que se ha guardado o un WP_Error. Los scripts no se ejecutan: los textos que un script genera después de cargar la página solo se detectan mediante la comprobación en el navegador.
Traducir sin el editor
Desde hooks 15, includes/api.php ejecuta en el servidor los pasos del editor de traducciones y de la función Traducir todo como el usuario actual, con los mismos permisos y comprobaciones; las rutas del propio editor llaman a las mismas funciones. Cada función devuelve un WP_Error (con un status para la respuesta REST) cuando el elemento, el idioma o los permisos del usuario no cumplen los requisitos.
| Function | |
|---|---|
swiftling_subject_texts( $key, $lang ) | The texts of a subject (post:12, template:…, view:…, terms:category, menu:3, a builder’s subject) the user may translate, with their translations into a language: key, object, path, section, kind, type (text, html, code, url, or format for a text from code), original, translation, state (reviewed, machine, official, outdated, missing), previous and follows. The originals are never stored, so the page is checked on the server first (swiftling_server_check()). |
swiftling_save_texts( $key, $lang, $items, $state ) | Saves translations by key, as the editor saves what is typed: $items is a list of key, text and, for the check of placeholders, original; $state is reviewed or machine. An empty text removes a translation. Returns the states of what was saved, the keys refused for their placeholders and those ignored, the subject’s state in every language (languages), and a post’s address in the language. |
swiftling_save_earlier_texts( $key, $lang, $items ) | Since hooks 22, for an import: saves translations made for an earlier version of their originals, as another plugin kept them ($items: key of the text’s place now, text, and the earlier original it translated). Each text is outdated then, as when its original changed after it was translated here: visitors read the original, the editor shows the earlier translation, Translate everything leaves it to the editor, and the page counts as translated once its other texts are. A text translated now, one whose earlier version is the text now, and one another language waits with in another earlier version (a text has one previous version for all languages) are ignored; returns the keys saved too. The subject’s page must have been checked. |
swiftling_save_address( $owner, $lang, $slug ) | Saves the slug of a post (post:12) or of a term with a page of its own (term:5) in a language, as the editor saves a typed one: empty for the original slug, a number added to one taken there. Returns the address it gives: slug, state, original, prefix, url. |
swiftling_machine_translate( $key, $lang, $items ) | Translates texts (key, text, html) with the subject’s translation service, through swiftling_machine_items and swiftling_machine_translations, at most 100 texts and 20,000 characters at once; it does not save them. Returns translations, failed, kept and error. |
swiftling_machine_translate_subject( $key, $lang, $again = array() ) | Fills the empty texts of a subject with the service and saves them as machine translations, in batches of 50 texts and 4,000 characters, as the Translate everything run fills a page; with states in $again (machine, reviewed), translates the texts in those states again instead. Returns how many texts there were, how many were translated, their characters, the keys failed and refused, the service’s error if it stopped, and own_page when the language shows a separate copy of the post or keeps its original (the stored mode duplicate), where nothing is filled in. |
Desde hooks 19, swiftling_import_languages( $source, $targets, $address ) configura los idiomas del sitio a partir de los de otro plugin para una importación: el idioma de origen (locale, slug), tal como lo establece la configuración inicial, o el mismo que ya tiene SwiftLing (de lo contrario, swiftling_import_source); los idiomas de destino (locale, slug, visible y, para una configuración regional que WordPress no incluye y que se convierte en un idioma personalizado, name y rtl) se añaden según su configuración regional y se conservan los que ya tiene el sitio; y $address: format (parameter, directory; domain y subdomain conservan sus domains, pero esperan a la pantalla de Direcciones) y source_folder. Devuelve las configuraciones regionales added y kept, los slugs, si el formato queda a la espera de hosts y las traducciones de WordPress instaladas y ausentes (packs). Desde hooks 20 también se ejecuta desde la API REST, WP-CLI y WP-Cron, no solo en las pantallas de administración. Desde hooks 21, si se indica un name para una configuración regional a la que WordPress asigna otro nombre, como «English» para en_GB («English (UK)»), ese nombre pasa a ser el que muestra el selector de idiomas y su etiqueta en la pantalla de Idiomas.
Los comentarios y los textos de un tema o un plugin aparecen en listas paginadas en sus respectivas pantallas: sus textos se guardan y traducen por clave, pero no se muestran ni se rellenan aquí. Desde hooks 23, swiftling_subject_found( $subject, array( 'page' => 1 ) ) devuelve una página de la lista de comentarios (comments:<post type>) tal como aparece en el editor de comentarios, con todos los comentarios ordenados del más reciente al más antiguo y con list (su page y pages; lang indica el idioma al que corresponden los recuentos), para que sus traducciones puedan guardarse por clave con swiftling_save_texts().
swiftling_machine_items
Filtro, desde hooks 9. Los textos del editor que se envían al servicio de traducción, para que un plugin pueda añadirles elementos: partes que deben conservarse (keep), como las palabras establecidas por un glosario para un servicio que no admite glosarios, o claves que lee un servicio propio. SwiftLing mantiene los textos, la indicación de si son HTML y sus propias partes que deben conservarse tal como estaban, y solo envía los textos de la página.
array<string, array> $items: clave =>text,html,keep; consultaService::translate().Service $service: el servicio que los traduce.array $language: el idioma al que se traducen, tal como lo devuelveswiftling_languages().
swiftling_machine_translations
Filtro, desde hooks 9. Las traducciones devueltas por el servicio, antes de que SwiftLing compruebe sus marcadores de posición y las variables de los plugins de SEO y de que el editor los inserte, para que un plugin pueda modificarlas, por ejemplo, insertando las palabras establecidas por un glosario donde se habían conservado. Solo los textos que se tradujeron, cada uno aún como texto.
array<string, string> $translations: clave => traducción.array<string, array> $items: lo que se envió; consultaswiftling_machine_items.Service $servicearray $language
swiftling_translated_changed
Acción. Se activa una vez que se han vuelto a escribir los idiomas a los que están traducidas algunas entradas.
int[] $post_ids
swiftling_translate_all_modes
Filtro, desde la versión 7 de los hooks. Las formas de ejecutar la pantalla Traducir todo, identificadas por modo, se muestran como tarjetas: fill, la opción propia de SwiftLing, rellena los textos vacíos. Un plugin añade una opción con label (el nombre de la tarjeta), description (la línea bajo el título de la pantalla), hint (lo que hace, en la tarjeta), icon y tint (su imagen, como la de una pantalla en swiftling_admin_screens) y file (el archivo PHP que muestra su pantalla debajo de las tarjetas, en admin.php?page=swiftling-translate-all&mode=<mode>). Si solo está SwiftLing, hay una única opción y no se muestran tarjetas. Sus scripts se cargan mediante swiftling_admin_screen_assets en swiftling-translate-all; allí están la comprobación de la página (window.swiftlingPageCheck) y la traducción automática compartida (window.swiftlingMachine).
Una ejecución que vuelve a traducir textos consulta la ruta de comprobación, con fill, para indicar en again qué textos quiere: machine, reviewed o ambos. La ruta devuelve entonces los textos traducidos en esos estados, cada uno con su state, en lugar de los vacíos; nunca devuelve uno de WordPress, de un tema o de un plugin, ni uno cuyo original haya cambiado. swiftling_translate_all_scan() los cuenta por página e idioma en translated (machine, reviewed; null si la página no se ha comprobado nunca).
swiftling_translate_all_aside
Acción, desde la versión 17 de los hooks. Se ejecuta en la parte superior de la columna lateral de Traducir todo, encima de Cómo funciona, una vez conectado un servicio de traducción. Ahí un plugin puede mostrar su propia tarjeta sobre la traducción de todo el sitio (<section class="swiftling-card swiftling-side">), como hace SwiftLing Pro para indicar que las páginas pueden traducirse en cuanto se publican. La versión 16 de los hooks tenía en su lugar swiftling_translate_all_notices bajo el título de la pantalla; ya no existe.
swiftling_translate_all_start_actions
Acción, desde la versión 18 de los hooks. Se ejecuta en el paso Iniciar de Traducir todo, junto al botón que inicia la ejecución en la pestaña. Ahí un plugin puede añadir otra forma de iniciarla, como hace SwiftLing Pro en el servidor.
string $lang: el idioma que muestran primero los pasos, o""cuando no se puede realizar ninguno.
Una ejecución controlada por el servidor
Desde la versión 18 de los hooks, swiftling_translate_all_record( $lang, $args ) registra lo que una ejecución de Traducir todo ha hecho con una página, o que ha terminado con un idioma, igual que hace la ruta de progreso para la ejecución en el navegador, y devuelve el estado de la ejecución (swiftling_translate_all_state()). $args: page (post:12), outcome (done o skipped), reason, texts, characters, total, finish, stopped y driver (browser o server). Un plugin que controla una ejecución en el servidor la planifica con swiftling_translate_all_plan( $lang ), traduce cada página con swiftling_machine_translate_subject() y la registra con driver establecido en server.
Solo uno controla un idioma a la vez: quien registra la ejecución la controla hasta que se detiene (stopped), termina o lleva tres minutos sin avanzar (navegador) o cinco (servidor). Mientras tanto, el otro recibe el error swiftling_translate_all_busy (409). El campo driver del estado indica quién la controla en ese momento, y la tarjeta de un idioma controlado por el servidor en la pantalla lo señala e impide seleccionarlo.
swiftling_editor_actions
Acción, desde la versión 7 de los hooks. Se ejecuta en la cabecera del editor de traducciones, después de las herramientas que rellenan los campos vacíos, para que un plugin muestre las suyas.
array $subject: lo que se traduce; véaseswiftling_subject().array $language: el idioma mostrado, tal como lo devuelveswiftling_languages().Service|null $service: el servicio que lo traduce, o null.
Su script, cargado mediante swiftling_admin_screen_assets en swiftling-translation después de swiftling-editor, trabaja con los campos a través de window.swiftlingEditor, una vez que ready es true o se ha disparado el evento swiftling:editor-ready en document:
texts( states ) | The text fields translated in those states (machine, reviewed): key, state, characters of the original. Never one from WordPress, a theme or a plugin, one whose original changed, or one with changes not saved. |
translateAgain( states ) | Translates those fields again with the service in use and saves them as machine translations, as «Translate empty fields» does: a promise of translated, failed and stopped (why the service stopped, or empty). |
service | The name of the service in use, or empty. |
dirty() | How many fields have changes not saved. |
Idiomas
Desde la versión 10 de los hooks, swiftling_switch_translation( $slug ) cambia temporalmente la traducción a un idioma fuera de la página que ve el visitante, por ejemplo, para un correo electrónico dirigido a un cliente y redactado en el panel de administración o mediante una tarea programada: los valores guardados, los textos del código y los enlaces se leen en ese idioma, y WordPress utiliza su configuración regional hasta que se llama a swiftling_resume_translation(). swiftling_pause_translation() hace lo mismo con el idioma original. Estas llamadas se pueden anidar; cada una necesita su correspondiente llamada para reanudar. Un slug que no corresponda a ninguno de los idiomas del sitio utiliza el idioma original. Así es como SwiftLing Pro redacta los correos electrónicos de WooCommerce dirigidos a un cliente en el idioma del pedido.
swiftling_language_forgotten
Acción. Se dispara después de que se hayan eliminado, desde la pantalla Idiomas, los datos conservados de un idioma que ya no está en el sitio, para que un plugin también pueda eliminar los datos que conserva de ese idioma.
string $locale: configuración regional del idioma.array $done: lo que se ha eliminado,textsycopies.
swiftling_starting_over
Acción, desde la versión 11 de los hooks. Se dispara cuando SwiftLing comienza el proceso de restablecimiento desde Ajustes › General, antes de eliminar nada, para que un plugin basado en él pueda eliminar los datos que conserva mientras aún puede utilizar los que SwiftLing eliminará después, como la clave de un servicio de traducción. Con everything, SwiftLing elimina a continuación todas las opciones y los datos transitorios que llevan su nombre, incluido swiftling_, también los de los plugins que lo incorporan, como SwiftLing Pro. Desinstalar SwiftLing no elimina nada: el restablecimiento es la única forma de eliminar sus datos.
string $scope:everything, okeepcuando se conservan las traducciones.
swiftling_started_over
Acción. Se dispara después de que SwiftLing se haya restablecido desde Ajustes › General.
string $scope:everything, okeepcuando se conservaron las traducciones.
swiftling_start_over_removed
Filtro, desde la versión 11 de los hooks. Permite añadir líneas a la lista de lo que elimina el restablecimiento en Ajustes › General, para que el usuario también pueda ver allí lo que elimina un plugin basado en SwiftLing.
string[] $removed: líneas de texto sin formato.
swiftling_language_switcher
Acción para temas. Muestra el selector de idiomas; no muestra nada si SwiftLing no está activo.
array $args: opcional, con los mismos argumentos que aceptaswiftling_language_switcher():style(dropdown,horizontal,vertical),flag,name,code,current,class.
<?php do_action( 'swiftling_language_switcher', array( 'style' => 'horizontal' ) ); ?>
swiftling_switcher_html
Filtro, desde la versión 8 de los hooks. El HTML de un selector de idiomas, en cualquier lugar donde se muestre (menú, pie de página, bloque, shortcode, widget, swiftling_language_switcher), para que un plugin pueda añadirle contenido. SwiftLing Pro añade a su lado el selector de divisas. No se llama cuando no hay ningún idioma al que cambiar.
string $html: el selector, undiv.swiftling-switcher.array $args: sus opciones:style(dropdown,horizontal,vertical),flag,name,code,current,class,flag_size.
Páginas
swiftling_hreflangs
Filtro. Las direcciones alternativas de la página que se está mostrando, que se publican como enlaces hreflang.
array<string, string> $links: etiqueta de idioma ox-default=> dirección.array $page: la dirección de la página en el idioma original, sin especificar un idioma (url), la entrada cuyas traducciones determinan sus idiomas (post, 0 para la página principal de entradas y los archivos) y lo que construye su dirección (build).
swiftling_search_limit
Filtro. Número máximo de entradas que una búsqueda obtiene del índice de traducciones.
int $limitWP_Query $query
Cachés
swiftling_purge_all
Acción. Se ejecuta una vez al final de una solicitud tras la cual cualquier página puede estar desactualizada, para que las cachés de páginas se vacíen por completo.
swiftling_purge_urls
Acción. Se ejecuta una vez al final de una solicitud tras la cual algunas páginas están desactualizadas, para que las cachés de páginas las eliminen.
string[] $urls: direcciones, en todos los idiomas en los que están desactualizadas.int[] $post_ids: entradas a las que pertenecen las direcciones, para las cachés que se vacían por entrada.
Registros y soporte
swiftling_log_areas
Filtro. Las áreas de la pantalla de registros, con los nombres asociados a cada área, para que un plugin pueda asignar un nombre a su propia área y escribir en el mismo registro con swiftling_log( $level, $area, $message, $args ).
array<string, string> $areas
swiftling_request_url
Filtro. Dirección a la que se envían las solicitudes de soporte para un plugin, tema o formulario; consulta includes/requests.php.
string $url