Cum să încarci WordPress pe o pagină non-WP?

14 oct. 2012, 18:47:57
Vizualizări: 14.8K
Voturi: 13

Vreau să folosesc funcția get_option() din WordPress într-unul dintre fișierele temei mele, care nu este legat de WP, ci doar se află în același director cu celelalte fișiere ale temei. Am nevoie de acest fișier din cauza unor acțiuni suplimentare legate de IPN PayPal, dar am nevoie de unele valori din tabelul de opțiuni care există în WP pentru a le apela în această pagină ca să funcționeze. Știu că nu pot folosi direct get_option() deoarece acest fișier este ignorat de WordPress. Există vreo abordare prin includerea unor părți din WordPress în tema mea pentru a face ca această funcționalitate să funcționeze?

2
Comentarii

Am retaguit întrebarea ta. Sugestie: Doar aruncă o privire în interiorul [tag:wp-load.php].

kaiser kaiser
14 oct. 2012 22:40:47

Te-ai gândit să obții aceste valori din baza de date folosind o interogare mysql personalizată? Încărcarea întregului sistem WordPress pentru câteva valori de opțiuni ar putea fi exagerată. Pentru menținere, recomand răspunsul lui Abdussamad (integrează-l într-un plugin)

Erik Joling Erik Joling
11 dec. 2017 21:13:10
Toate răspunsurile la întrebare 4
2
12

Cea mai scurtă cale este să încarci wp-load.php și să întrerupi încărcarea motorului de șabloane (Notă: Nu ai putea face asta dacă ai încărca fișierul header, așa cum vezi pe multe site-uri din internet).

# Nu este nevoie de motorul de șabloane
define( 'WP_USE_THEMES', false );
# Încarcă nucleul WordPress
// Presupunem că suntem într-un subdirector: "~/wp-content/plugins/current_dir"
require_once( '../../../wp-load.php' );
15 oct. 2012 04:19:36
Comentarii

Există mai multe documentații despre WP_USE_THEMES decât https://codex.wordpress.org/The_Loop ? :)

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

@jave.web Sigur: Căutarea în sursă cross-file.

kaiser kaiser
26 mai 2016 00:37:53
2

Cea mai simplă metodă este să incluzi fișierul wp-load.php. Acest fișier va încărca întregul nucleu WordPress, astfel încât poți folosi funcții WordPress precum get_option în fișierul tău PHP:

include 'calea/către/wp-load.php';

echo get_option( 'nume_optiune' );
14 oct. 2012 19:35:37
Comentarii

+1 Dar conform răspunsului de mai sus, poți șterge "cea mai simplă" ;)

kaiser kaiser
14 oct. 2012 22:48:23

O singură linie (inclusiv wp-load.php) față de multiple linii (comentarii ale plugin-ului la început), asta e cea mai simplă, lol.

Anh Tran Anh Tran
15 oct. 2012 04:16:09
1

Transformă fișierul tău extern într-un plugin WordPress. În acest fel vei avea acces complet la funcțiile de bază ale WordPress.

14 oct. 2012 19:04:41
Comentarii

Acest lucru îți va face viața mult mai ușoară pe termen lung.

westondeboer westondeboer
14 oct. 2012 20:31:45
0

Acest cod ar trebui să funcționeze pe orice instalare 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 dec. 2017 19:23:28