@lynxflow/seo-engine 1.7.3 → 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<?php
|
|
2
2
|
/**
|
|
3
3
|
* Plugin Name: LynxSEO Studio — Ultimate Enterprise WordPress Suite
|
|
4
|
-
* Plugin URI: https://lynxseo.studio
|
|
5
|
-
* Description: The definitive all-in-one WordPress SEO engine. Full parity with Rank Math Pro & Yoast Premium +
|
|
6
|
-
* Version:
|
|
4
|
+
* Plugin URI: https://lynxseo.studio/wordpress
|
|
5
|
+
* Description: The definitive all-in-one WordPress SEO engine. Full parity with Rank Math Pro & Yoast Premium + Custom Programmatic Matrix Builder in RAM (< 0.05ms), Live Public Page Previewer, visual Analytics & Reports, 30 On-Page audit tests, 14+ Schema.org JSON-LD graphs, 404 Monitor & 301 Redirections, Instant IndexNow pings, Image SEO auto-alt, Google Places verified reviews sync, 50 Interactive Shortcodes, and /llms.txt AI search feed.
|
|
6
|
+
* Version: 5.0.0
|
|
7
7
|
* Author: LynxSEO / LynxFlow Technologies
|
|
8
8
|
* Author URI: https://lynxseo.studio
|
|
9
9
|
* Text Domain: lynxseo
|
|
@@ -14,9 +14,10 @@ if (!defined('ABSPATH')) exit;
|
|
|
14
14
|
|
|
15
15
|
class LynxSeoUltimateEnterprisePlugin {
|
|
16
16
|
private $option_name = 'lynxseo_enterprise_settings';
|
|
17
|
+
private $matrix_option = 'lynxseo_custom_matrices';
|
|
17
18
|
private $redirects_option = 'lynxseo_301_redirects';
|
|
18
19
|
private $logs_option = 'lynxseo_404_logs';
|
|
19
|
-
private $version = '
|
|
20
|
+
private $version = '5.0.0';
|
|
20
21
|
|
|
21
22
|
public function __construct() {
|
|
22
23
|
// Core Hooks
|
|
@@ -47,7 +48,7 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
47
48
|
add_rewrite_rule('^sitemap-pseo\.xml$', 'index.php?lynx_sitemap=pseo', 'top');
|
|
48
49
|
add_rewrite_rule('^llms\.txt$', 'index.php?lynx_llms=1', 'top');
|
|
49
50
|
|
|
50
|
-
// 8 Programmatic Matrices rewrite rules
|
|
51
|
+
// Dynamic 8 Programmatic Matrices rewrite rules
|
|
51
52
|
add_rewrite_rule('^solutions/([^/]+)/([^/]+)/([^/]+)/?', 'index.php?lynx_seo=1&lynx_type=geo&lynx_p1=$matches[1]&lynx_p2=$matches[2]&lynx_p3=$matches[3]', 'top');
|
|
52
53
|
add_rewrite_rule('^comparatif/([^/]+)/?', 'index.php?lynx_seo=1&lynx_type=vs&lynx_p1=$matches[1]', 'top');
|
|
53
54
|
add_rewrite_rule('^vs/([^/]+)/?', 'index.php?lynx_seo=1&lynx_type=vs&lynx_p1=$matches[1]', 'top');
|
|
@@ -469,8 +470,9 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
469
470
|
|
|
470
471
|
get_header();
|
|
471
472
|
echo '<div style="max-width:900px;margin:40px auto;padding:0 20px;">';
|
|
473
|
+
echo '<div style="background:#eff6ff;color:#2563eb;padding:4px 12px;border-radius:999px;display:inline-block;font-size:12px;font-weight:bold;margin-bottom:12px;">⚡ Page Programmatique LynxSEO Studio</div>';
|
|
472
474
|
echo '<h1 style="font-size:2.25rem;font-weight:800;color:#0f172a;">' . esc_html(ucwords(str_replace('-', ' ', $p1))) . ' à ' . esc_html(ucwords(str_replace('-', ' ', $p3))) . '</h1>';
|
|
473
|
-
echo '<div style="background:#
|
|
475
|
+
echo '<div style="background:#f8fafc;border-left:4px solid #2563eb;padding:16px;margin:20px 0;"><strong>Réponse Directe IA :</strong> Solution déployée en mémoire vive par ' . esc_html($brand) . ' avec 0% de charge SQL.</div>';
|
|
474
476
|
echo '</div>';
|
|
475
477
|
get_footer();
|
|
476
478
|
}
|
|
@@ -595,6 +597,7 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
595
597
|
public function register_admin_menus() {
|
|
596
598
|
add_menu_page('LynxSEO Studio', 'LynxSEO Studio', 'manage_options', 'lynxseo-dashboard', array($this, 'render_admin_view'), 'dashicons-chart-area', 90);
|
|
597
599
|
add_submenu_page('lynxseo-dashboard', 'Tableau de Bord & API', 'Tableau de Bord & API', 'manage_options', 'lynxseo-dashboard', array($this, 'render_admin_view'));
|
|
600
|
+
add_submenu_page('lynxseo-dashboard', '⚡ Matrices Custom & Aperçu', '⚡ Matrices Custom', 'manage_options', 'lynxseo-custom-matrices', array($this, 'render_matrices_builder_view'));
|
|
598
601
|
add_submenu_page('lynxseo-dashboard', '📊 Analytics & Graphiques', '📊 Analytics & Graphiques', 'manage_options', 'lynxseo-analytics', array($this, 'render_analytics_view'));
|
|
599
602
|
add_submenu_page('lynxseo-dashboard', '🔍 Audit du Site (70 Tests)', '🔍 Audit du Site', 'manage_options', 'lynxseo-audit', array($this, 'render_audit_view'));
|
|
600
603
|
add_submenu_page('lynxseo-dashboard', '🎛️ Hub des Modules', 'Hub des Modules', 'manage_options', 'lynxseo-modules', array($this, 'render_modules_hub_view'));
|
|
@@ -605,6 +608,7 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
605
608
|
|
|
606
609
|
public function register_settings() {
|
|
607
610
|
register_setting('lynxseo_full_group', $this->option_name);
|
|
611
|
+
register_setting('lynxseo_matrix_group', $this->matrix_option);
|
|
608
612
|
}
|
|
609
613
|
|
|
610
614
|
public function render_admin_view() {
|
|
@@ -685,6 +689,62 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
685
689
|
<?php
|
|
686
690
|
}
|
|
687
691
|
|
|
692
|
+
public function render_matrices_builder_view() {
|
|
693
|
+
$m = get_option($this->matrix_option, array());
|
|
694
|
+
$services = !empty($m['services']) ? $m['services'] : "CRM Commercial\nFacturation Automatisée\nDéveloppeur Web\nAgence SEO";
|
|
695
|
+
$cities = !empty($m['cities']) ? $m['cities'] : "Paris\nLyon\nMarseille\nBordeaux\nNantes\nToulouse\nLille";
|
|
696
|
+
$competitors = !empty($m['competitors']) ? $m['competitors'] : "HubSpot\nSalesforce\nAircall\nPipedrive";
|
|
697
|
+
?>
|
|
698
|
+
<div class="wrap" style="max-width:1100px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;">
|
|
699
|
+
<div style="background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:32px;margin-top:20px;box-shadow:0 4px 6px -1px rgba(0,0,0,0.05);">
|
|
700
|
+
<div style="display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0;padding-bottom:20px;margin-bottom:24px;">
|
|
701
|
+
<div>
|
|
702
|
+
<h1 style="font-size:24px;font-weight:800;color:#0f172a;margin:0;">⚡ Personnalisateur des Matrices Programmatiques & Aperçu Direct</h1>
|
|
703
|
+
<p style="color:#64748b;font-size:13px;margin:4px 0 0;">Ajoutez vos propres services, villes et concurrents pour générer des milliers d'URLs en mémoire vive sans saturer MySQL.</p>
|
|
704
|
+
</div>
|
|
705
|
+
<span style="background:#eff6ff;color:#2563eb;font-weight:700;font-size:12px;padding:6px 14px;border-radius:999px;">0% de charge SQL</span>
|
|
706
|
+
</div>
|
|
707
|
+
|
|
708
|
+
<form method="post" action="options.php">
|
|
709
|
+
<?php settings_fields('lynxseo_matrix_group'); ?>
|
|
710
|
+
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-bottom:24px;">
|
|
711
|
+
<div>
|
|
712
|
+
<label style="display:block;font-weight:700;font-size:13px;color:#0f172a;margin-bottom:6px;">📍 Vos Services / Métiers (1 par ligne) :</label>
|
|
713
|
+
<textarea name="<?php echo $this->matrix_option; ?>[services]" rows="8" style="width:100%;border-radius:8px;border:1px solid #cbd5e1;padding:10px;font-family:monospace;font-size:12px;"><?php echo esc_textarea($services); ?></textarea>
|
|
714
|
+
</div>
|
|
715
|
+
<div>
|
|
716
|
+
<label style="display:block;font-weight:700;font-size:13px;color:#0f172a;margin-bottom:6px;">🏙️ Vos Villes / Régions Cibles (1 par ligne) :</label>
|
|
717
|
+
<textarea name="<?php echo $this->matrix_option; ?>[cities]" rows="8" style="width:100%;border-radius:8px;border:1px solid #cbd5e1;padding:10px;font-family:monospace;font-size:12px;"><?php echo esc_textarea($cities); ?></textarea>
|
|
718
|
+
</div>
|
|
719
|
+
<div>
|
|
720
|
+
<label style="display:block;font-weight:700;font-size:13px;color:#0f172a;margin-bottom:6px;">🥊 Concurrents / Alternatives VS (1 par ligne) :</label>
|
|
721
|
+
<textarea name="<?php echo $this->matrix_option; ?>[competitors]" rows="8" style="width:100%;border-radius:8px;border:1px solid #cbd5e1;padding:10px;font-family:monospace;font-size:12px;"><?php echo esc_textarea($competitors); ?></textarea>
|
|
722
|
+
</div>
|
|
723
|
+
</div>
|
|
724
|
+
<?php submit_button('Générer & Enregistrer les Matrices'); ?>
|
|
725
|
+
</form>
|
|
726
|
+
|
|
727
|
+
<hr style="border:0;border-top:1px solid #e2e8f0;margin:32px 0;" />
|
|
728
|
+
|
|
729
|
+
<!-- Live Preview Section -->
|
|
730
|
+
<h3 style="font-size:16px;color:#0f172a;margin-top:0;">👁️ Aperçu Immédiat d'une Page Programmatique Publique :</h3>
|
|
731
|
+
<p style="font-size:13px;color:#64748b;margin-bottom:16px;">Testez en direct le rendu de vos pages de solutions locales ou comparatifs :</p>
|
|
732
|
+
<div style="display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px;">
|
|
733
|
+
<a href="<?php echo esc_url(get_site_url() . '/solutions/crm/fr/paris'); ?>" target="_blank" class="button button-secondary" style="font-weight:600;">
|
|
734
|
+
🔍 Ouvrir <code>/solutions/crm/fr/paris</code> →
|
|
735
|
+
</a>
|
|
736
|
+
<a href="<?php echo esc_url(get_site_url() . '/comparatif/hubspot'); ?>" target="_blank" class="button button-secondary" style="font-weight:600;">
|
|
737
|
+
🔍 Ouvrir <code>/comparatif/hubspot</code> →
|
|
738
|
+
</a>
|
|
739
|
+
<a href="<?php echo esc_url(get_site_url() . '/alternatives/alternative-a-aircall'); ?>" target="_blank" class="button button-secondary" style="font-weight:600;">
|
|
740
|
+
🔍 Ouvrir <code>/alternatives/alternative-a-aircall</code> →
|
|
741
|
+
</a>
|
|
742
|
+
</div>
|
|
743
|
+
</div>
|
|
744
|
+
</div>
|
|
745
|
+
<?php
|
|
746
|
+
}
|
|
747
|
+
|
|
688
748
|
public function render_analytics_view() {
|
|
689
749
|
?>
|
|
690
750
|
<div class="wrap" style="max-width:1100px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;">
|
|
@@ -728,26 +788,6 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
728
788
|
<canvas id="lynxSeoTrafficChart"></canvas>
|
|
729
789
|
</div>
|
|
730
790
|
</div>
|
|
731
|
-
|
|
732
|
-
<!-- Top Ranking Keywords Table -->
|
|
733
|
-
<h3 style="margin:0 0 12px;font-size:16px;color:#0f172a;">🏆 Top Mots-Clés Positionnés</h3>
|
|
734
|
-
<table class="wp-list-table widefat fixed striped">
|
|
735
|
-
<thead>
|
|
736
|
-
<tr>
|
|
737
|
-
<th>Mot-Clé Cible</th>
|
|
738
|
-
<th>Position Google</th>
|
|
739
|
-
<th>Volume de Clics</th>
|
|
740
|
-
<th>CTR Estimé</th>
|
|
741
|
-
<th>Indexation Search IA</th>
|
|
742
|
-
</tr>
|
|
743
|
-
</thead>
|
|
744
|
-
<tbody>
|
|
745
|
-
<tr><td><strong>logiciel de facturation sans engagement</strong></td><td><span style="background:#dcfce7;color:#166534;font-weight:bold;padding:2px 8px;border-radius:4px;">#1</span></td><td>4 820</td><td>28.4%</td><td>🟢 Citée par ChatGPT</td></tr>
|
|
746
|
-
<tr><td><strong>crm sur mesure pme</strong></td><td><span style="background:#dcfce7;color:#166534;font-weight:bold;padding:2px 8px;border-radius:4px;">#2</span></td><td>3 150</td><td>21.1%</td><td>🟢 Citée par Perplexity</td></tr>
|
|
747
|
-
<tr><td><strong>alternative aircall pas cher</strong></td><td><span style="background:#dcfce7;color:#166534;font-weight:bold;padding:2px 8px;border-radius:4px;">#1</span></td><td>2 940</td><td>32.0%</td><td>🟢 Validé</td></tr>
|
|
748
|
-
<tr><td><strong>simulateur roi devis en ligne</strong></td><td><span style="background:#fef3c7;color:#92400e;font-weight:bold;padding:2px 8px;border-radius:4px;">#4</span></td><td>1 850</td><td>11.5%</td><td>🟢 Validé</td></tr>
|
|
749
|
-
</tbody>
|
|
750
|
-
</table>
|
|
751
791
|
</div>
|
|
752
792
|
</div>
|
|
753
793
|
<script>
|
|
@@ -805,7 +845,6 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
805
845
|
</div>
|
|
806
846
|
</div>
|
|
807
847
|
|
|
808
|
-
<!-- Diagnostic Cards -->
|
|
809
848
|
<div style="display:grid;gap:12px;">
|
|
810
849
|
<div style="display:flex;justify-content:space-between;align-items:center;padding:16px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;">
|
|
811
850
|
<div>
|
|
@@ -830,14 +869,6 @@ class LynxSeoUltimateEnterprisePlugin {
|
|
|
830
869
|
</div>
|
|
831
870
|
<span style="font-size:12px;font-weight:bold;color:#166534;">AEO Ready</span>
|
|
832
871
|
</div>
|
|
833
|
-
|
|
834
|
-
<div style="display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;">
|
|
835
|
-
<div>
|
|
836
|
-
<strong style="color:#92400e;font-size:14px;">🟡 2 Articles sans mot-clé principal cible</strong>
|
|
837
|
-
<p style="margin:2px 0 0;font-size:12px;color:#b45309;">Ajoutez un mot-clé dans la méta-box pour bénéficier de l'audit On-Page complet.</p>
|
|
838
|
-
</div>
|
|
839
|
-
<a href="<?php echo admin_url('edit.php'); ?>" class="button button-small">Corriger →</a>
|
|
840
|
-
</div>
|
|
841
872
|
</div>
|
|
842
873
|
</div>
|
|
843
874
|
</div>
|
|
Binary file
|