Plugin automatic-ai-posts (v2.0.0) - Pipeline completo: coleta de feeds RSS/Atom, filtro por IA, reescrita, categoria, imagem de capa e agendamento - Página de configuração com teste real do provedor de IA - Editor: botão para refazer imagem de capa e metadados, textos em PT-BR - Ajuda com botão Pix (copia-e-cola + QR) e sem nota de avaliação - Cache-busting por mtime nos assets do admin Tema gustavoo-portfolio - Marca do cabeçalho reduzida a "Gustavo" - Suporte a título próprio da marca Setup (docker/wp-init.sh, compose.yaml) - Plugins de terceiros (Post Views Counter, Rank Math, Site Kit) instalados do WordPress.org em vez de versionados - Falha explícita ao final se algum plugin obrigatório não instalar - WPCLI_UID/WPCLI_GID configuráveis Seeder do tema - Links permanentes "Dia e nome" e avatar "Iniciais" aplicados apenas em instalação nova, com regravação do .htaccess
31 lines
690 B
PHP
31 lines
690 B
PHP
<?php
|
|
namespace AAP\Core;
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
/**
|
|
* PSR-4 style autoloader: AAP\Foo\Bar -> src/Foo/Bar.php
|
|
*/
|
|
final class Autoloader {
|
|
|
|
private static string $base = '';
|
|
|
|
public static function register(string $base): void {
|
|
self::$base = rtrim($base, '/') . '/';
|
|
spl_autoload_register([self::class, 'load']);
|
|
}
|
|
|
|
public static function load(string $class): void {
|
|
if (strncmp($class, 'AAP\\', 4) !== 0) {
|
|
return;
|
|
}
|
|
|
|
$relative = substr($class, 4);
|
|
$path = self::$base . str_replace('\\', '/', $relative) . '.php';
|
|
|
|
if (is_readable($path)) {
|
|
require_once $path;
|
|
}
|
|
}
|
|
}
|