Wordpress include ("...... / / / Wp-blog-header");

4 Cevap php

Ben şu anda. Php dosyaların sürü içeren Wordpress için bir eklenti üzerinde çalışıyorum. Benim AddShift.php dosyası için, başarıyla aşağıdaki kod satırını kullanarak blog başlığı ithal görüyoruz:

include("../../../wp-blog-header.php");

Benim ajax_cal_split.php dosyasında aynı şeyi yapmaya çalıştığınızda, ancak, ben aşağıdaki hatayı alıyorum:

Warning: include(./wp-blog-header.php) [function.include]: failed to open stream: No such file or directory in /opt/lampp/htdocs/sandboxj/blog/wp-content/plugins/Shifty/ajax_cal_split.php on line 11

Warning: include() [function.include]: Failed opening './wp-blog-header.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/sandboxj/blog/wp-content/plugins/Shifty/ajax_cal_split.php on line 11

Tabii line 11 diyor

include("../../../wp-blog-header.php");

Bu çağrı biri üzerinde çalışmak için herhangi bir neden yoktur. Php dosyası ve başka bir, onlar aynı dizinde alıyorsunuz?

4 Cevap

Evet - wordpress wp-content dizinde içerik üzerinde bir güvenlik mekanizması çalışır inanıyorum, ben temalar ile aynı problem vardı. Ben kullanılan çözüm mutlak yol isimleri ile dahil oldu.

Bu eklenti dosyasında gerçek yol almak için çözüm

<?php
$scriptPath = dirname(__FILE__);
 $path = realpath($scriptPath . '/./');
 $filepath = split("wp-content",$path);
// print_r($filepath);
define('WP_USE_THEMES', false);
require(''.$filepath[0].'/wp-blog-header.php');

Sen wordpress tarafından sağlanan WP_PLUGIN_URL sabiti kullanarak denemelisiniz. Örneğin, bu gibi size gerçek eklentisi url tanımlayabilirsiniz:

define('MyPLUGIN_URL', WP_PLUGIN_URL.'/plugin_folder/'); 

ve sonra gibi aramaları kullanabilirsiniz:

include(MyPLUGIN_URL."wp-blog-header.php");

I geç cevap için üzgünüm sorunu çözmek ancak sonraki olanları içeri kontrol yardımcı olabilir Thats nasıl

çalışır, önerildiği gibi yapmak ve mutlak bir url kullanmak, i kullanılan

("wp-content/themes/YOUR_THEME/DESIRED_FILE.php") içerir;