Description / Informations supplémentaires

Le cache sera vérifié en premier. La fonction fonctionne aussi s'il y a un cache pour votre plugin qui y sauvegarderait ses valeurs. Si vous utiliser le cache par défaut de WordPress, et la base de donnée qui va avec, il pourrait y avoir quelques problèmes.

Vérifie l'option 'siteurl' pour WordPress soit installé.

Pour plus d'informations sur cette fonction ou d'autres similaires, voir l'article Conditional Tags sur le Manuel du développeur de thème.

Retourne

(bool) true si WordPress est installé.

Déclaration et structure de la fonction is_blog_installed()

function is_blog_installed() {
    global $wpdb;

    /*
     * Check cache first. If options table goes away and we have true
     * cached, oh well.
     */
    if ( wp_cache_get( 'is_blog_installed' ) ) {
        return true;
    }

    $suppress = $wpdb->suppress_errors();

    if ( ! wp_installing() ) {
        $alloptions = wp_load_alloptions();
    }

    // If siteurl is not set to autoload, check it specifically.
    if ( ! isset( $alloptions['siteurl'] ) ) {
        $installed = $wpdb->get_var( "SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'" );
    } else {
        $installed = $alloptions['siteurl'];
    }

    $wpdb->suppress_errors( $suppress );

    $installed = ! empty( $installed );
    wp_cache_set( 'is_blog_installed', $installed );

    if ( $installed ) {
        return true;
    }

    // If visiting repair.php, return true and let it take over.
    if ( defined( 'WP_REPAIRING' ) ) {
        return true;
    }

    $suppress = $wpdb->suppress_errors();

    /*
     * Loop over the WP tables. If none exist, then scratch installation is allowed.
     * If one or more exist, suggest table repair since we got here because the
     * options table could not be accessed.
     */
    $wp_tables = $wpdb->tables();
    foreach ( $wp_tables as $table ) {
        // The existence of custom user tables shouldn't suggest an unwise state or prevent a clean installation.
        if ( defined( 'CUSTOM_USER_TABLE' ) && CUSTOM_USER_TABLE === $table ) {
            continue;
        }

        if ( defined( 'CUSTOM_USER_META_TABLE' ) && CUSTOM_USER_META_TABLE === $table ) {
            continue;
        }

        $described_table = $wpdb->get_results( "DESCRIBE $table;" );
        if (
            ( ! $described_table && empty( $wpdb->last_error ) ) ||
            ( is_array( $described_table ) && 0 === count( $described_table ) )
        ) {
            continue;
        }

        // One or more tables exist. This is not good.

        wp_load_translations_early();

        // Die with a DB error.
        $wpdb->error = sprintf(
            /* translators: %s: Database repair URL. */
            __( 'One or more database tables are unavailable. The database may need to be <a href="%s">repaired</a>.' ),
            'maint/repair.php?referrer=is_blog_installed'
        );

        dead_db();
    }

    $wpdb->suppress_errors( $suppress );

    wp_cache_set( 'is_blog_installed', false );

    return false;
}
wp_installing()

Vérifie ou met Wordpress en mode installation.

wp_cache_get()

Retourne le contenu du cache par clés et groupes.

wp_cache_set()

Sauvegarde les données dans le cache.

__()

Retourne la traduction d'un texte.

wp_load_translations_early()

Tente un chargement en avance des translations.

dead_db()

Charge les erreurs personnalisées de WordPress de la base de donnée ou les affiche.

wp_load_alloptions()

Charge et met en cache toutes les options auto-chargées si disponible ou toutes les options.

Où est utilisée la fonction is_blog_installed() dans le CMS WordPress

Sources

Codex WordPress : is_blog_installed()

Autres fonctions dans le même fichier : wp-includes/functions.php

Retour