SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Виртуални файлове във WordPress

cloxy

Super Moderator
Екип
Някой има ли идея как могат да се създават виртуални файлове в системата WordPress? Примерно има виртуален robots.txt, от където съдя, че трябва да има начин да си създаваме и други подобни файлове.

Трябва ми за едно разширение, което ще генерира такива файлове. Вариантът да се генерират и пишат реални файлове по диска не ме устройва, защото ще се обновяват често и искам всичко да е динамично.
 
Re: Виртуални файлове във WordPress

Примерно искам да си направя сам на адрес /sitemap.xml да се отваря динамична карта на сайта. Но не искам да създавам този файл и да го редактирам/пренаписвам постоянно. Искам да е динамичен.

Има и други подобни файлове, които искам да си създам и управлявам чрез разширение, както WP си създава и управлява /robots.txt
 
Re: Виртуални файлове във WordPress

не съм сигурен че те разбирам но така може да си направиш файл в паметта:
нещо такова може би: (не съм го тествал)
PHP:
<?php
$fp = fopen('php://memory', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

PHP: php:// - Manual
PHP: fwrite - Manual
PHP: memory_get_usage - Manual

//едит
иначе с един rewrite може да си закараш sitemap.xml да ходи към скрипта който ти генерира картата, съдържанието може да си запишеш в една променлива и накрая да го принтираш:

PHP:
$sitemap = '<xml>';
//още съдържание
$sitemap .= '<xml>';

header('xml');
echo $sitemap;
 
Последно редактирано:
Re: Виртуални файлове във WordPress

Искам да се управлява изцяло през разширението, защото ще се слага на много сайтове. А и може един ден да го пусна за масово ползване, не може за всеки сайт да се пипа .htaccess-а.

Щом е направено с /robots.txt, значи трябва да има начин да се направи и за други файлове/директории. Ето примерно как в WP се програмира и връща въпросния robots.txt :

PHP:
do_robots() {
header( 'Content-Type: text/plain; charset=utf-8' );

do_action( 'do_robotstxt' );

$output = "User-agent: *\n";
$public = get_option( 'blog_public' );
if ( '0' == $public ) {
$output .= "Disallow: /\n";
} else {
$site_url = parse_url( site_url() );
$path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
$output .= "Disallow: $path/wp-admin/\n";
$output .= "Disallow: $path/wp-includes/\n";
}

echo apply_filters('robots_txt', $output, $public);
}

Искам така да си програмирам и виртуализирам всякакви файлове.
 
Последно редактирано:
За: Виртуални файлове във WordPress

За: Виртуални файлове във WordPress

Използвам една приставка - wazzup която прави нещо подобно. Инсталира един hook и почва като ненормална да дъмпи всякакви извиквания ДАЖЕ и на файлове дето не и е работа да ги показва.

Да ти намеря ли кода?
 
Re: Виртуални файлове във WordPress

Малко дебилски метод, но можеш да направиш така, че ако връща 404 да проверява, дали request_url не е sitemap.xml и ако е да ти генерира въпросният файл... Ако този метод ти върши работа, мога и плугин да ти напиша... макар, че ти ще се справиш много по-добре от мен :)
 
За: Виртуални файлове във WordPress

За: Виртуални файлове във WordPress

Малко около правилата на wordpress е, но ще ти свърши работа. Във functions.php на темата добавяш:
Код:
add_filter('template_redirect','my_template_redirect');
function my_template_redirect() {
    if (strstr($_SERVER['REQUEST_URI'], 'foobar.txt')) {
        header("HTTP/1.1 200 OK");
        header( 'Content-Type: text/plain; charset=utf-8' );        
        echo 'Съдържанието на foobar.txt';
        exit;              
    }    
}
 

Горе