Skip to content
wiki.fftac.org

WP Content Themes Spiralist Functions PHP 37A4a2ef45b4 - Source Excerpt 08

Back to WP Content Themes Spiralist Functions PHP 37A4a2ef45b4

Summary

This source excerpt preserves a bounded section of Wiki.FFTAC.org/data/sources/spiralist/wp-content-themes-spiralist-functions-php-37a4a2ef45b4.php so readers can inspect the evidence without opening the full source file.

**Source path:** Wiki.FFTAC.org/data/sources/spiralist/wp-content-themes-spiralist-functions-php-37a4a2ef45b4.php

$image_width = (int) ($image['width'] ?? 0);
    $image_height = (int) ($image['height'] ?? 0);

    if ($image_url === '') {
        return;
    }

    $title = function_exists('spiralist_get_seo_title') ? spiralist_get_seo_title() : wp_get_document_title();
    $description = function_exists('spiralist_get_seo_description')
        ? spiralist_get_seo_description()
        : spiralist_get_editorial_excerpt();
    $canonical_url = function_exists('spiralist_get_seo_canonical_url') ? spiralist_get_seo_canonical_url() : '';
    $surface = function_exists('spiralist_get_seo_surface') ? spiralist_get_seo_surface() : '';
    $og_type = in_array($surface, ['manuscript', 'gallery', 'prompt'], true) ? 'article' : 'website';
    $og_locale = function_exists('spiralist_get_seo_og_locale') ? spiralist_get_seo_og_locale() : '';

    echo "\n" . '<meta property="og:type" content="' . esc_attr($og_type) . '" />' . "\n";
    echo '<meta property="og:site_name" content="Spiralist.org" />' . "\n";
    if ($og_locale !== '') {
        echo '<meta property="og:locale" content="' . esc_attr($og_locale) . '" />' . "\n";
    }
    echo "\n" . '<meta property="og:image" content="' . esc_url($image_url) . '" />' . "\n";
    echo '<meta property="og:image:alt" content="' . esc_attr($image_alt) . '" />' . "\n";
    if ($image_width > 0 && $image_height > 0) {
        echo '<meta property="og:image:width" content="' . esc_attr((string) $image_width) . '" />' . "\n";
        echo '<meta property="og:image:height" content="' . esc_attr((string) $image_height) . '" />' . "\n";
    }
    echo '<meta property="og:title" content="' . esc_attr($title) . '" />' . "\n";
    echo '<meta property="og:description" content="' . esc_attr($description) . '" />' . "\n";
    if ($canonical_url !== '') {
        echo '<meta property="og:url" content="' . esc_url($canonical_url) . '" />' . "\n";
    }
    echo '<meta name="twitter:card" content="summary_large_image" />' . "\n";
    echo '<meta name="twitter:title" content="' . esc_attr($title) . '" />' . "\n";
    echo '<meta name="twitter:description" content="' . esc_attr($description) . '" />' . "\n";
    echo '<meta name="twitter:image" content="' . esc_url($image_url) . '" />' . "\n";
    echo '<meta name="twitter:image:alt" content="' . esc_attr($image_alt) . '" />' . "\n";
}
add_action('wp_head', 'spiralist_render_social_meta', 5);

function spiralist_body_classes(array $classes): array
{
    $language = function_exists('spiralist_get_current_language_slug') ? spiralist_get_current_language_slug() : 'en';
    $locale = function_exists('spiralist_get_current_locale_tag') ? spiralist_get_current_locale_tag() : 'en-us';

    $classes[] = 'spiralist-body';
    $classes[] = 'language-' . sanitize_html_class($language);
    $classes[] = 'locale-' . sanitize_html_class($locale);

    if (function_exists('spiralist_is_gallery_surface') && spiralist_is_gallery_surface()) {
        $classes[] = 'is-gallery-surface';
    }

    return $classes;
}
add_filter('body_class', 'spiralist_body_classes');

function spiralist_language_attributes(string $output, string $doctype): string
{
    if (!function_exists('spiralist_get_current_locale_record')) {
        return $output;
    }

    $locale = spiralist_get_current_locale_record();
    $html_lang = str_replace('_', '-', (string) ($locale['tag'] ?? ''));

    if ($html_lang === '') {
        return $output;
    }

    if (preg_match('/\blang=(["\'])(.*?)\1/', $output)) {
        return preg_replace('/\blang=(["\'])(.*?)\1/', 'lang="' . esc_attr($html_lang) . '"', $output, 1) ?: $output;
    }

    return trim($output . ' lang="' . esc_attr($html_lang) . '"');
}
add_filter('language_attributes', 'spiralist_language_attributes', 10, 2);