Прежде всего, я признаю, что я WP-нуб, поэтому я даже не уверен, что поступлю правильно. Я пытаюсь создать простой плагин, который заменяет соответствующий текст в the_content. Код работает на моем тестовом сервере PHP, но не работает в WP, заставляя меня поверить, что я что-то упустил. Я надеюсь, что кто-то может указать мне правильное направление.
Я бы хотел, чтобы код выполнял поиск в the_content для строки в формате [custom attr = "x" attr2 = "y"] sometext [/ custom]. Для этого я просто использую preg_match / regex для сопоставления с шаблоном, а затем заменяю его str_replace. Я не уверен, что квадратные скобки вызывают проблему (так как WP, очевидно, использует их для быстрых ссылок). Кто-нибудь может протянуть руку?
Ниже приведен пример кода (упрощенно $txt
, но вы все еще можете понять, чего я пытаюсь достичь). Спасибо.
function test_function($content)
{
global $post;
$match = preg_match_all('/[custom w="(\d+)" h="(\d+)"\]((?:[a-z][a-z]<em>[0-9]+[a-z0-9]</em>))\[\/custom\]/is', $content, $matches);
if($match) {
$width = $matches[1][0];
$height = $matches[2][0];
$customtxt = $matches[3][0];</p>
<pre><code> $rep = '[custom attr="' . $width . '" attr2="' . $height . '"]' . $customtext . '[/custom]';
$txt = '
<div id="' . $customtxt . '_container" class="overlay">
<img width="'.$width.'" height="'.$height.'" src="'.$customtxt.'_thumb.jpg" />
</div>
';
if(strpos($content, $rep)) {
$content = str_replace($rep, $txt, $content);
}
}
return $content;
}
функция insert_head ()
{
?>
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script language="javascript" type="text/javascript" src="<?php bloginfo('wpurl') ?>/wp-content/plugins/test_function/js/test_function.pack.js"></script>
<? PHP
} </p>
add_action ('wp_head', 'insert_head');
if (is_single ()) {
add_filter ('the_content', 'test_function');
} еще {
add_filter ('the_excerpt', 'test_function');
}