如何将 WP 变量添加到 GD imagepng
Posted
技术标签:
【中文标题】如何将 WP 变量添加到 GD imagepng【英文标题】:How to add WP variables to GD imagepng 【发布时间】:2018-11-19 16:25:53 【问题描述】:我正在尝试将登录用户 ID (wordpress) 添加到 GD 图像。
当我使用常量时,它会正确显示 png,当调用变量时,它会显示损坏的图像链接。
调用是通过短代码调用完成的:
/* ================== GET PIC USER ================== */
function get_pic_user($atts)
$myphp_folder = get_stylesheet_directory_uri() . '/make-pic.php';
$html = '<img src="'.$myphp_folder.'" align="middle">';
return $html;
add_shortcode( 'display_get_pic_user', 'get_pic_user' );
make-pic.php后面的php是:
<?php
$user = wp_get_current_user();
$string_user = $user->id;
$im = imagecreatefrompng("../my_user_pic.png");
header("Content-type: image/png");
$color = imagecolorallocate($im, 51, 51, 51);
imagestring($im, 21, 500, 350, $string_user, $color);
imagepng($im);
imagedestroy($im);
exit;
所以这行得通:
<?php
$string_user = 15;
$im = imagecreatefrompng("../my_user_pic.png");
这不是:
<?php
$user = wp_get_current_user();
$string_user = $user->id;
$im = imagecreatefrompng("../my_user_pic.png");
任何建议将不胜感激。
谢谢
【问题讨论】:
在进一步调试问题时,我注意到以下几点:它给出了一个致命错误:未捕获的错误:调用未定义的函数 wp_get_curent_user() in ..... 【参考方案1】:在添加了几个 REQUIRE 和其他解决方案后问题仍然表现出来。我想出的一个可行的解决方案是将 IMAGEPNG 添加到代码中,但是使用 OB_START / OB_GET_CLEAN。以下作品:
图像仍从页面调用,并带有短代码 [display_get_pic_user]。其背后的代码是:
function get_pic_user()
$user = wp_get_current_user();
$string_user = $user->id;
$im = imagecreatefrompng("../my_user_pic.png");
$color = imagecolorallocate($im, 51, 51, 51);
imagestring($im, 21, 500, 350, $string_user, $color);
ob_start();
imagepng($im);
$rawImageBytes = ob_get_clean();
$html = "<img src='data:image/png;base64," . base64_encode( $rawImageBytes ) . "' align=middle/>";
imagedestroy($im);
return $html;
add_shortcode( 'display_get_pic_user', 'get_pic_user' );
【讨论】:
以上是关于如何将 WP 变量添加到 GD imagepng的主要内容,如果未能解决你的问题,请参考以下文章
使用 wp_mail() 将带有表单变量的电子邮件发送到电子邮件
Wordpress / WooCommerce wp_localize_script 将 php 变量日期添加到 javascript