php страница за пост в УП

тео

Well-Known Member
Започнах един сайт на УП като експеримент и имам следното затруднение/въпрос:
Възможно ли е вместо пост да се пуска определена страница от сайта, която е php? Имам един скрипт за тестове. С админ панел в който се пишат самите тестове, точкуват се възможните отговори и в резултат се генерира php линк към страница със самия тест. Е ли е възможно, тази php страница (самия тест) да стане пост във УП, а за заглавка да се въвежда описанието му?
В момента съм го организирал така - заглавка > пост > в поста линк към php-то > нова страница с теста > резултати .
Бих искала да е заглавка > тест в поста > резултати в поста
Приемам всякакви идеи.

ПП. Пробвах с iframe, но не е добре - след като се реши теста, поста остава дълъг, колкото е бил необходим на въпросника и трябва да се скролва доста нагоре за да се видят резултатите.
 
От: php страница за пост в УП

Първото дето ми идва на акъла е да се направи shortcode.
Shortcode дава възможност постът да приема всякакви аргументи, прави всякакви PHP обработки, и да изплюва всякакъв резултат.
Под формата на пост.

Изисквания - PHP да не ти създава дискомфорт, и да се прочете горе линкнатата страница. Има си разни особености - като да не се ползват никакви echo-та, само крайният резултат да се return-ne най-долу..
 
От: php страница за пост в УП

Лелее, взе ми акъла - от noob в pro за по-малко от 2 часа трудно ще стана :)
Сигурно ще се получи, но аз поне нямам идея как да го направя.
Надявах се по-скоро някоя джаджа да се намери....
 
От: php страница за пост в УП

Намерих това, но не върши работа. Слага се във functions.php:
PHP:
function include_file($atts) {
 //check the input and override the default filepath NULL
 //if filepath was specified
 extract(shortcode_atts(array('filepath' => 'NULL'), $atts));
 //check if the filepath was specified and if the file exists
 if ($filepath!='NULL' && file_exists(TEMPLATEPATH.$filepath)){
 //turno on output buffering to capture script output
 ob_start();
 //include the specified file
 include(TEMPLATEPATH.$filepath);
 //assign the file output to $content variable and clean buffer
 $content = ob_get_clean();
 //return the $content
 //return is important for the output to appear at the correct position
 //in the content
 return $content;
 }
 }
 //register the Shortcode handler
 add_shortcode('include', 'include_file');
После във поста извиквам функцията със:
PHP:
[include filepath="/test/exam.php?id=3"]
Не сработи въобще. Защо ли?

EDIT: Не сработва заради пътя пътя към шаблона - оправих го, но пак не тръгна.
 
Последно редактирано:
От: php страница за пост в УП

Разгледай това: http://www.hongkiat.com/blog/execute-php-in-wordpress-post-page-and-widget-sidebar/

Едно плъгинче което ти позволява да слагаш пхп код в поста. След туй просто слагаш в поста едно инклудване на скрипта ти и си готов.
Не съм го тествал, може да споделиш дали работи.
 
От: php страница за пост в УП

Разгледай това: http://www.hongkiat.com/blog/execute-php-in-wordpress-post-page-and-widget-sidebar/

Едно плъгинче което ти позволява да слагаш пхп код в поста. След туй просто слагаш в поста едно инклудване на скрипта ти и си готов.
Не съм го тествал, може да споделиш дали работи.

:D
"Спи града" от Тончо Русев
:D

Как работи:
1. Инсталира се плъгина
2. Елементарен код се слага в поста:

PHP:
<phpcode> 
<?php

include 'http://xxx.xxx/xxx.php?id=xxx';

?>
</phpcode>
3. Това е!!!!!

Само ще трябва да го донаглася, че иде центрирано, и вади най-отгоре
Код:
[FONT=Times New Roman][FONT=Georgia] "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/FONT][/FONT]
, но това си е направо бял кахър :):):)

Уви, малко репи мога да давам, но от сърце :)

EDIT: Ако може, някой да даде зелени репи на ThinkFast, че явно много съм му давал напоследък и не ми разрешава пак
 
От: От: php страница за пост в УП

Намерих това, но не върши работа. Слага се във functions.php:
PHP:
function include_file($atts) {
 //check the input and override the default filepath NULL
 //if filepath was specified
 extract(shortcode_atts(array('filepath' => 'NULL'), $atts));
 //check if the filepath was specified and if the file exists
 if ($filepath!='NULL' && file_exists(TEMPLATEPATH.$filepath)){
 //turno on output buffering to capture script output
 ob_start();
 //include the specified file
 include(TEMPLATEPATH.$filepath);
 //assign the file output to $content variable and clean buffer
 $content = ob_get_clean();
 //return the $content
 //return is important for the output to appear at the correct position
 //in the content
 return $content;
 }
 }
 //register the Shortcode handler
 add_shortcode('include', 'include_file');
[/QUOTE]
 По принцип нещо такова би трябвало да работи, ама то в $content точно така нищо не влиза.
И аз не мога да му дам реп.
 
От: php страница за пост в УП

Намерих това, но не върши работа. Слага се във functions.php:
PHP:
function include_file($atts) {
 //check the input and override the default filepath NULL
 //if filepath was specified
 extract(shortcode_atts(array('filepath' => 'NULL'), $atts));
 //check if the filepath was specified and if the file exists
 if ($filepath!='NULL' && file_exists(TEMPLATEPATH.$filepath)){
 //turno on output buffering to capture script output
 ob_start();
 //include the specified file
 include(TEMPLATEPATH.$filepath);
 //assign the file output to $content variable and clean buffer
 $content = ob_get_clean();
 //return the $content
 //return is important for the output to appear at the correct position
 //in the content
 return $content;
 }
 }
 //register the Shortcode handler
 add_shortcode('include', 'include_file');
После във поста извиквам функцията със:
PHP:
[include filepath="/test/exam.php?id=3"]
Не сработи въобще. Защо ли?

EDIT: Не сработва заради пътя пътя към шаблона - оправих го, но пак не тръгна.
Това като го гледам, си мисля че файла трябва да е в TEMPLATEPATH - папката на темата ти. Да не си го пробвал с файл в главната папка?
 

Горе