Вы возвращаете результат вызова
function build_total_search_method( $atts ) {
return file_get_contents( dirname(__FILE__) . "/includes/total_search.php" );
}
add_shortcode( 'total_search', 'build_total_search_method' );
. You want to grab the output of the included file and return than instead. Use
выход буферизация сделать это.
file_get_contents()
||answer||
ты получаешь 0
from your include, meaning your include succeeded. if you want to assign the value to a variable, your included file can only FALSE
данные. например, в 1
:
include_once()
||answer||
include()
(and the usually-safer <?php
$some_var = 'Some content';
return $some_var;
) возвращаются независимо от того, удалось им это или нет. Вы видите total_search.php
because that is the successful return value. Incidentally, it returns return
, нет 1
on failure (no idea why).
Чтобы сделать то, чего вы пытаетесь достичь, решение @webaware будет работать, но менее обходным (и более эффективным решением для того, что вы пытаетесь сделать, будет использование function build_total_search_method( $atts ) {
ob_start();
include( dirname(__FILE__) . "/includes/total_search.php" );
$shorcode_php_function = ob_get_clean();
return $shorcode_php_function;
}
add_shortcode( 'total_search', 'build_total_search_method' );
like so:
include
Обратите внимание, что я также удалил лишнюю переменную, поскольку она никогда не использовалась, и я думаю, что с этой дополнительной строкой она станет менее читабельной.