fepo
fepo analyzes your website and reports concrete optimization potential — without changing a single file on your site. What you get: Performance score — Lighthouse + PageSpeed Insights, Core Web Vitals (LCP, INP, CLS), real-user data (CrUX) AI Visibility (GEO score) — checks whether ChatGPT, Perplexity, and Google AI Overviews can read your content (Schema.org, robots.txt, structured content) Fonts — how many KB you could save with subsetting / preloading CSS — how much unused CSS is loaded Images — which images can be converted to AVIF / WebP and the resulting savings GDPR check (EU/DACH only) — which trackers fire before the user has given consent The first audit is free — no account, no API key, no credit card. Click one button and you get a full performance and GEO breakdown. For the full report — sandbox preview, optimized HTML download, waterfall analysis, security headers, accessibility (WCAG), DOM hygiene, and more — register for free at the fepo Portal. The plugin does not modify your website. It is purely diagnostic — no files are changed, no CSS/JS is rewritten, no caching is configured. Your site stays exactly as it was. External services This plugin connects to portal.fepo.app, an external service operated by fepo, to perform the audit. What is sent and when: When you click “Start audit”: your site URL, WordPress version, PHP version, active theme name and version, list of active plugin slugs, site locale, and plugin version. When you optionally register: your email address (encrypted at rest, used only for sending the login link). What is NOT sent: No personal data of your visitors No content from posts, pages, or comments No database contents No file contents The audit itself is performed by fepo’s server fetching your site’s public URLs (like any browser would). No private endpoints are accessed. Users must explicitly consent to data transmission via a checkbox before the first audit. The consent is stored locally and can be revoked at any time by deactivating the plugin. Terms of service: https://fepo.app/agb Privacy policy: https://fepo.app/datenschutz
Post Author IP
This plugin records the IP address of the original post author when a post first gets created. The admin listing of posts is amended with a new “Author IP” column that shows the IP address of the author who first saved the post. The plugin is unable to provide IP address information for posts that were created prior to the use of this plugin. Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage Hooks The plugin is further customizable via four filters. Typically, code making use of filters should ideally be put into a mu-plugin or site-specific plugin (which is beyond the scope of this readme to explain). c2c_show_post_author_ip_column (filter) The ‘c2c_show_post_author_ip_column’ filter allows you to determine if the post author IP column should appear in the admin post listing table. Your hooking function can be sent 1 argument: Argument : $show_column (bool) Should the column be shown? Default true. Example: /** * Don't show the post author IP column except to admins. * * @param bool $show_column Should the column be shown? Default true. * @return bool */ function post_author_ip_column_admin_only( $show ) { if ( ! current_user_can( 'manage_options' ) ) { $show = false; } return $show; } add_filter( 'c2c_show_post_author_ip_column', 'post_author_ip_column_admin_only' ); c2c_get_post_author_ip (filter) The ‘c2c_get_post_author_ip’ filter allows you to customize the value stored as the post author IP address. Your hooking function can be sent 2 arguments: Arguments : $ip (string) The post author IP address. $post_id (int) The post ID. Example: /** * Store all IP addresses from local subnet IP addresses as the same IP address. * * @param string $ip The post author IP address. * @param int $post_id The post ID. * @return string */ function customize_post_author_ip( $ip, $post_id ) { if ( 0 === strpos( $ip, '192.168.' ) ) { $ip = '192.168.1.1'; } return $ip; } add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 ); c2c_get_current_user_ip (filter) The ‘c2c_get_current_user_ip’ filter allows you to customize the current user’s IP address, as used by the plugin. Your hooking function can be sent 1 argument: Argument : $ip (string) The post author IP address. Example: /** * Overrides localhost IP address. * * @param string $ip The post author IP address. * @param int $post_id The post ID. * @return string */ function customize_post_author_ip( $ip, $post_id ) { if ( 0 === strpos( $ip, '192.168.' ) ) { $ip = '192.168.1.1'; } return $ip; } add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 ); c2c_post_author_ip_allowed (filter) The ‘c2c_post_author_ip_allowed’ filter allows you to determine on a per-post basis if the post author IP should be stored. Your hooking function can be sent 3 arguments: Arguments : $allowed (bool) Can post author IP be saved for post? Default true. $post_id (int) The post ID. $ip (string) The post author IP address. Example: /** * Don't bother storing localhost IP addresses. * * @param bool $allowed Can post author IP be saved for post? Default true. * @param int $post_id The post ID. * @param string $ip The post author IP address. * @return string */ function disable_localhost_post_author_ips( $allowed, $post_id, $ip ) { if ( $allowed && 0 === strpos( $ip, '192.168.' ) ) { $allowed = false; } return $allowed; } add_filter( 'c2c_post_author_ip_allowed', 'disable_localhost_post_author_ips', 10, 3 );