Come caricare WordPress su una pagina non WP?

14 ott 2012, 18:47:57
Visualizzazioni: 14.8K
Voti: 13

Voglio utilizzare la funzione get_option() di WordPress in uno dei file del mio tema che non è collegato a WP, si trova semplicemente nella stessa directory degli altri file del tema. Ho bisogno di questo file per alcune azioni aggiuntive relative a IPN di PayPal, ma devo richiamare alcuni valori dalla tabella delle opzioni di WordPress perché funzioni. So che non posso semplicemente usare get_option() perché questo file viene ignorato da WordPress. Esiste un approccio per includere alcune parti di WordPress nel mio tema per far funzionare solo questa funzionalità?

2
Commenti

Ho ritaggato la tua domanda. Suggerimento: Dai un'occhiata dentro [tag:wp-load.php].

kaiser kaiser
14 ott 2012 22:40:47

Hai pensato di ottenere questi valori dal database usando una query mysql personalizzata? Caricare l'intero sistema WordPress solo per un paio di valori delle opzioni potrebbe essere eccessivo. Per la manutenibilità consiglio la risposta di Abdussamad (integrala in un plugin)

Erik Joling Erik Joling
11 dic 2017 21:13:10
Tutte le risposte alla domanda 4
2
12

Il modo più breve è caricare wp-load.php e interrompere il caricamento del motore di template (Nota: non potresti farlo se stessi caricando il file header, come si vede in molti siti sul web).

# Non serve il motore di template
define( 'WP_USE_THEMES', false );
# Carica il core di WordPress
// Assumendo che siamo in una sottocartella: "~/wp-content/plugins/current_dir"
require_once( '../../../wp-load.php' );
15 ott 2012 04:19:36
Commenti

Ci sono più documentazioni su WP_USE_THEMES oltre a https://codex.wordpress.org/The_Loop ? :)

jave.web jave.web
25 mag 2016 22:27:20

@jave.web Certo: La ricerca incrociata nei file del codice sorgente.

kaiser kaiser
26 mag 2016 00:37:53
2

Il modo più semplice è includere il file wp-load.php. Questo file caricherà tutto il core di WordPress, quindi potrai usare le funzioni di WP come get_option nel tuo file PHP:

include 'percorso/del/wp-load.php';

echo get_option( 'nome_opzione' );
14 ott 2012 19:35:37
Commenti

+1 Ma secondo la risposta sopra, puoi eliminare "il più semplice" ;)

kaiser kaiser
14 ott 2012 22:48:23

Una riga (incluso wp-load.php) contro più righe (commenti del plugin all'inizio), questo è il più semplice, lol.

Anh Tran Anh Tran
15 ott 2012 04:16:09
1

Trasforma il tuo file esterno in un plugin per WordPress. In questo modo avrai accesso completo alle funzioni core di WordPress.

14 ott 2012 19:04:41
Commenti

Questo ti renderebbe la vita molto più semplice a lungo termine.

westondeboer westondeboer
14 ott 2012 20:31:45
0

Questo dovrebbe funzionare su qualsiasi installazione WordPress:

<?php
function load_wp_load() {
  $wp_did_header = true;
  require_once($_SERVER['DOCUMENT_ROOT'] . '/index.php');
  $matches = preg_grep('/wp-blog-header.php/', get_included_files());
  if (!empty($matches)) {
    $abspath = dirname(reset($matches)) . '/';
    define('ABSPATH', $abspath);
    require_once(ABSPATH . 'wp-load.php');
  }
}
?>
11 dic 2017 19:23:28