2009-12-08 2 views
1

Я пишу плагин, который добавляет страницу с тегом [deposit_page]; этот тег следует заменить некоторым кодом PHP.WordPress заменить содержимое страницы (плагин)

Это то, что у меня есть, но оно не работает. Есть что-то, что я упускаю или делаю неправильно?

function deposit_page_content($content) { 
    $deposit_page_content = "here will go the content that should replace the tags";//end of variable deposit_page_content 
    $content=str_ireplace('[deposit_page]',$deposit_page_content,$content); 
return $content; 
} 
add_filter("the_content", "deposit_page_content"); 

Я просто заметил, что я дал то же имя переменной содержимому, которое должно заменить тег и сама функция. Это может быть проблема?

+0

Этот код работает отлично (я только проверил его, помещая его в functions.php). Как вы включаете это в свой плагин? Есть ли еще больше возможностей для вашего плагина? Если нет, я бы предложил просто вставить его в файл с вашими функциями. –

+0

Я сделал это, я просто копировал/вставлял функцию в functions.php темы по умолчанию, но все же тот же – Christophe

+0

вы используете PHP5? str_ireplace - это функция PHP 5. Как я уже сказал, я скопировал и вложил его в существующую wp-install, и он отлично работает. На самом деле, в середине предложения («test [deposit_page] test»), практически любая конфигурация, о которой я могу думать. Это абсолютно правильный код. –

ответ

6

WordPress поддерживает [square_bracket_shortcodes] встроенный в

См:. http://codex.wordpress.org/Shortcode_API

Вот ваш простой пример:

function deposit_page_shortcode($atts) { 
    $deposit_page_content = "here will go the content that should replace the tags"; 
    return $deposit_page_content; 
} 

add_shortcode('deposit_page', 'deposit_page_shortcode'); 

Вы можете вставить это вfunctions.php файл вашего активной темы.

Если требуемые атрибуты, как [my_shortcode foo=bar], вы могли бы сделать, в верхней части этой функции:

extract(shortcode_atts(array(
    'foo' => 'default foo', 
    'example' => 'default example', 
), $atts)); 

// Now you can access $foo and $example 
Смежные вопросы