gurenkov
Ответы в темах
-
короче вордпресс обновилась и там упрощение. теперь вот этой хрени не надо:
<?php wp_nonce_field('update-options'); ?>
не понятна суть сообщения . мне нужно чтобы по кнопке сохранить происходило сохранение параметра sert_prcnt_right_in_test
для сохранения в админке параметров.
пробовал вначале зарегистрировать :
add_option(«sert_prcnt_right_in_test», ‘100’);не помогает
не понял ваше «Если выводит что-то, сильно нагружающее сервер, то как-то так»:
{ static $html; if ( $html ) return $html; $html = .... return $html; }
в моём коде тоже ведь в случае чего-нибудь ресурснопожирающего выполнится один раз. по мне так коды тождественны .
у меня работает с моим вариантом. но принимаю критику )
шорткод сначала выводит input text в котором пользователь вводит имя/фамилия, а затем берёт картинку из медии и зарисовывает на нем это имя / фамилию . и даёт скачать картинку.
function sert( $atts ) { global $wpdb; static $int; if ($int==0) { //echo("_file_=".__FILE__.'|<br>'); $params = shortcode_atts( array( 'id'=> 0 ), $atts ); $string = $params['id']; $doc = new DOMDocument(); $doc->loadHTML($string); // echo($string); foreach ($doc->getElementsByTagName('img') as $node) { $src = $node->getAttribute( 'src' ); } $src = WP_CONTENT_DIR.'/'.substr($src,strpos($src, 'uploads'),strlen($src) ); $html='<h1 class="entry-title">Пожалуйста, введите своё имя и фамилию на английском языке</h1><form action="'.get_permalink( $post->ID ).'" method="post"><input type="text" name="NAME"><input style="margin-left: 12px;" type="submit" name="OK"></form>'; if (isset($_POST['NAME'])) { /*****************************************************************/ /*процесс наложения подписи*/ $ttfImg = new ttfTextOnImage(str_replace (chr(92),'/',$src)); //echo($src); $size=35; $text = mb_convert_encoding($_POST['NAME'], 'UTF-8', 'CP-1251'); $text = strtoupper($text); $ttfImg->setFont($text,str_replace (chr(92),'/',WP_PLUGIN_DIR."/certificate_downloader/assets/fonts/librebaskerville.ttf"), 35, "#123C0E", 10000); $ttfImg->writeText(300, 300, $text) ; $uniqid = uniqid("").'.jpg'; $uniq_id_url=WP_PLUGIN_URL.'/certificate_downloader/'.$uniqid ; //echo("1".'<br>'); $pic_dir = str_replace (chr(92),'/',WP_PLUGIN_DIR.'/certificate_downloader/'.$uniqid ); $ttfImg->output($pic_dir); /*****************************************************************/ $html='<h1 class="entry-title">Готово, теперь можете скачать свой сертификат</h1> <a href="'.$uniq_id_url.'" Download> Скачать</a>'; } $int++; return $html; } }
вот так , да ?
function sert( $atts ) {/*процедура описания шорткод*/ global $wpdb; static $int; if ($int==0) { ........ $int++; return $html }
поясните , что вы имели ввиду сославшись на переменные типа static ?
да похоже что дело либо в теме , либо в каком-нибудь другом плагине.
я запустил свой плагин на денвере — работает один раз.пусть даже тело шорткода такое (понимаю , что такое тело не совсем можно, но суть не в этом) :
`function sert( $atts ) {
echo(«s»);
}так вот в этом случае высветит «s» 3 раза.