Eigenes Google Fonts PHP Script template (WordPress Plugin)

Um eine URL auf Google Fonts zu überprüfen bedarf es nur eines kleinen PHP-Scriptes. Dieses kann per WordPress Plugin geschrieben werden.

Kopiere Dir folgenden Code in eine Datei und speichere sie unter dem Namen “google-fonts-search.php” in einem Ordner in Deinen Pugins ab. Den Ordner darfst Du benennen, wie Du magst. Nachdem Du das getan hast, musst Du in WordPress in Deine Plugins und es nur noch aktivieren. Dann kannst Du einen Beitrag oder eine neue Seite erstellen und den Code [google_fonts_search] darin platzieren. Voilà, online kannst Du diese Seite / den Beitrag nun aufrufen und in ein Formularfeld eine URL eingeben, um sie nach Google Fonts zu überprüfen.

<?php
/*
Plugin Name: Google Fonts Search by xyz
Plugin URI: https://www.blogperle.de
Description: Searches for Google Fonts on a specified URL and specifies the location of the website.
Version: 1.0
Author: Dein Name
Author URI: https://www.xyz.com
License: abc
*/

function google_fonts_search_scripts() {
  wp_enqueue_script( 'google-fonts-search', plugin_dir_url( __FILE__ ) . 'google-fonts-search.js', array(), '1.0', true );
  wp_localize_script( 'google-fonts-search', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'google_fonts_search_scripts' );

function google_fonts_search_form() {
  ?>
  <form id="google-fonts-search-form">
    <label for="url">URL:</label><br>
    <input type="text" id="url" name="url"><br>
    <input type="submit" value="Submit">
  </form>
  <div id="google-fonts-search-results"></div>
  <?php
}
add_shortcode( 'google_fonts_search', 'google_fonts_search_form' );

function google_fonts_search_ajax_handler() {
  $url = $_POST['url'];
  $html = file_get_contents($url);
  $google_fonts_search = new DOMDocument();
  @$google_fonts_search->loadHTML($html);
  $link_tags = $google_fonts_search->getElementsByTagName('link');
  $google_fonts = array();
  foreach($link_tags as $link_tag) {
    if(strpos($link_tag->getAttribute('href'), 'fonts.googleapis.com') !== false) {
      $google_fonts[] = $link_tag->getAttribute('href');
    }
  }
  if(!empty($google_fonts)) {
    echo 'Google Fonts found on ' . $url . ':<br>';
    foreach($google_fonts as $google_font) {
      echo $google_font . '<br>';
    }
  } else {
    echo 'No Google Fonts found on ' . $url;
  }
  wp_die();
}
add_action( 'wp_ajax_google_fonts_search', 'google_fonts_search_ajax_handler' );
add_action( 'wp_ajax_nopriv_google_fonts_search', 'google_fonts_search_ajax_handler' );

function google_fonts_search_js() {
  ?>
  <script type="text/javascript">
  jQuery(document).ready(function($) {
    $('#google-fonts-search-form').submit(function(e) {
      e.preventDefault();
      var url = $('#url').val();
      $.ajax({
        type: 'POST',
        url: ajax_object.ajax_url,
        data: {
          'action': 'google_fonts_search',
          'url': url
        },
        success: function(response) {
          $('#google-fonts-search-results').html(response);
        }
      });
    });
  });
  </script>
  <?php
}
add_action( 'wp_footer', 'google_fonts_search_js' );

 

Leave a Comment.