Php 我写了一个Wordpress插件短代码,当我试图用该短代码更新页面时,它给了我一个标题Allready sent错误
我刚刚编写了一个插件,它应该通过Php 我写了一个Wordpress插件短代码,当我试图用该短代码更新页面时,它给了我一个标题Allready sent错误,php,wordpress,advanced-custom-fields,shortcode,Php,Wordpress,Advanced Custom Fields,Shortcode,我刚刚编写了一个插件,它应该通过shortcode显示一个带有acf字段的表(主要是分类法),以便更好地进行实习生链接。一切正常。但是,当我将短代码添加到页面并尝试更新它时,会出现PHP错误: 警告:无法修改标题信息-标题已由/wp admin/post.php第222行中的(输出从wp content/plugins/pwd taxo tables/taxo.php:64开始)发送 警告:无法修改标题信息-第1251行wp includes/pluggable.php中已发送的标题(输出从wp
shortcode
显示一个带有acf字段的表(主要是分类法),以便更好地进行实习生链接。一切正常。但是,当我将短代码添加到页面并尝试更新它时,会出现PHP错误
:
警告:无法修改标题信息-标题已由/wp admin/post.php第222行中的(输出从wp content/plugins/pwd taxo tables/taxo.php:64开始)发送
警告:无法修改标题信息-第1251行wp includes/pluggable.php中已发送的标题(输出从wp content/plugins/pwd taxo tables/taxo.php:64开始)
警告:无法修改标题信息-标题已由第1254行/wp includes/pluggable.php中的wp content/plugins/pwd taxo tables/taxo.php:64处开始输出)发送
知道密码有什么问题吗
// register jquery and style on initialization
add_action('init', 'register_script');
function register_script() {
wp_register_style( 'new_style', plugins_url('/css/pwd.css', __FILE__), false, '1.0.0', 'all');
}
// use the registered jquery and style above
add_action('wp_enqueue_scripts', 'enqueue_style');
function enqueue_style(){
wp_enqueue_style( 'new_style' );
}
function pwd_get_taxonomy_links($taxonomy){
$terms = get_field($taxonomy);
if($terms) {
foreach ($terms as $term){
$termdata = get_term_by('id',$term,$taxonomy);
$taxname = $termdata->name;
$taxurl = get_term_link($term,$taxonomy);
$alltaxlinks .= '<a href="'.$taxurl.'">'.$taxname.'</a>, ';
}
echo rtrim($alltaxlinks, ', ');
}
}
function method1($a,$b)
{
return ($a["menu_order"] <= $b["menu_order"]) ? -1 : 1;
}
function get_tax_vale(){
$fields = get_fields();
//echo "<pre>" . print_r($fields) . "</pre>";
/* foreach ($fields as $name => $value){
$fielddata = get_field_object($name);
$fields[$name]['menu_order']= $fielddata['menu_order'];
}
*/
//echo "<pre>" . print_r($fields) . "</pre>";
// uasort($fields, "method1");
//print_r($fields);
if($fields){
echo '<table class="table table-details table-condensed" style="font-size:0.7rem;"><tbody>';
foreach( $fields as $name => $value ){
$fielddata = get_field_object($name);
$label = $fielddata['label'];
$type = $fielddata['type'];
$order = $fielddata['menu_order'];
if($name != "einleitung" && $name != "affiliate_link" && $name != "menu_order"){
echo '<tr><td><span class="">' . $label . '</span></td><td>';
if($type != "taxonomy"){
echo $value;
}
else{
pwd_get_taxonomy_links($name);
}
echo '</td><td><a target="_blank" class="tax-button" href="' . get_field('affiliate_link') . '">Zum Anbieter</a> </td></tr>';
}
}
echo ' </tbody></table>';
}
}
add_shortcode('taxotable', 'get_tax_vale');
//初始化时注册jquery和样式
添加_操作('init','register_script');
函数寄存器_脚本(){
wp_register_style('new_style',plugins_url('/css/pwd.css',_uu文件),false,'1.0.0','all');
}
//使用上面注册的jquery和样式
添加_操作(“wp_排队_脚本”、“排队_样式”);
函数排队_style(){
wp_排队_样式(“新_样式”);
}
函数pwd_get_taxonomy_links($taxonomy){
$terms=get_字段($taxonomy);
如果($条款){
foreach($terms作为$term){
$termdata=get_term_by('id',$term,$taxonomy);
$taxname=$termdata->name;
$taxurl=获取术语链接($term$taxonomy);
$alltaxlinks.=',';
}
echo rtrim($AllTaxLink,,');
}
}
函数方法1($a$b)
{
返回($a[“菜单顺序”]$value){
$fielddata=get\u field\u对象($name);
$fields[$name]['menu_order']=$fielddata['menu_order'];
}
*/
//回显“.print_r($fields)”;
//uasort($fields,“method1”);
//打印(字段);
如果($fields){
回声';
foreach($name=>$value的字段){
$fielddata=get\u field\u对象($name);
$label=$fielddata['label'];
$type=$fielddata['type'];
$order=$fielddata['menu_order'];
如果($name!=“einleitung”&&&$name!=“附属链接”&&&$name!=“菜单顺序”){
回显“.$label.”;
如果($type!=“分类法”){
echo美元价值;
}
否则{
pwd_获取_分类法_链接($name);
}
回声';
}
}
回声';
}
}
添加快捷码(“taxotable”、“get_tax\u vale”);
试试这个代码
这里的原因是add_shortcode函数必须返回一个值,而不是直接输出
函数get\u tax\u vale(){
$fields=get_fields();
如果($fields){
$htmlscript='';
foreach($name=>$value的字段){
$fielddata=get\u field\u对象($name);
$label=$fielddata['label'];
$type=$fielddata['type'];
$order=$fielddata['menu_order'];
如果($name!=“einleitung”&&&$name!=“附属链接”&&&$name!=“菜单顺序”){
$htmlscript.=''.$label';
如果($type!=“分类法”){
$htmlscript.=$value;
}
否则{
$htmlscript.=pwd_get_taxonomy_links($name);
}
$htmlscript.='';
}
}
$htmlscript.='';
}
返回$htmlscript;
}
添加快捷码(“taxotable”、“get_tax\u vale”);
此代码中的第64行将在此处:echo“”。。。但我不知道有什么问题?试着返回一个字符串,而不是原地回音。该函数是在标题信息被调用之前调用的,这会中断站点的流程。最好是解释差异,而不是仅仅转储一堆更改过的代码。这里的原因是add\u shortcode
函数必须返回一个值,而不是直接输出。
function get_tax_vale(){
$fields = get_fields();
if($fields){
$htmlscript = '<table class="table table-details table-condensed" style="font-size:0.7rem;"><tbody>';
foreach( $fields as $name => $value ){
$fielddata = get_field_object($name);
$label = $fielddata['label'];
$type = $fielddata['type'];
$order = $fielddata['menu_order'];
if($name != "einleitung" && $name != "affiliate_link" && $name != "menu_order"){
$htmlscript .= '<tr><td><span class="">' . $label . '</span></td><td>';
if($type != "taxonomy"){
$htmlscript .= $value;
}
else{
$htmlscript .= pwd_get_taxonomy_links($name);
}
$htmlscript .= '</td><td><a target="_blank" class="tax-button" href="' . get_field('affiliate_link') . '">Zum Anbieter</a> </td></tr>';
}
}
$htmlscript .= ' </tbody></table>';
}
return $htmlscript;
}
add_shortcode('taxotable', 'get_tax_vale');