Я написал шорткод Wordpress Plugin, и он выдает ошибку «Заголовок уже отправлен», когда я пытаюсь обновить страницу с этим шорткодом - PullRequest
0 голосов
/ 30 апреля 2019

Я только что написал плагин, который должен отображать таблицу с acf fields (в основном таксономии) через shortcode для лучшей внутренней связи. все отлично работает но когда я добавляю shortcode на страницу и пытаюсь обновить его, я получаю PHP Errors:

Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод начался с wp-content / plugins / pwd-taxo-tables / taxo.php: 64) в /wp-admin/post.php в строке 222

Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод начался с wp-content / plugins / pwd-taxo-tables / taxo.php: 64) в wp-includes / pluggable.php в строке 1251

Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод начался с wp-content / plugins / pwd-taxo-tables / taxo.php: 64) в /wp-includes/pluggable.php в строке 1254

Есть идеи, что не так в коде?

<code>// 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) . "
"; / * foreach ($ fields как $ name => $ value) { $ fielddata = get_field_object ($ name); $ fields [$ name] ['menu_order'] = $ fielddata ['menu_order']; } * / // echo "
" . print_r($fields) . "
"; // uasort ($ fields, "method1"); // print_r ($ поля); если ($ полей) { echo '
'. $ label. ''; if ($ type! = "таксономия") { значение $ echo; } еще { pwd_get_taxonomy_links ($ название); } echo ' Zum Anbieter
'; } } add_shortcode ('taxotable', 'get_tax_vale');

1 Ответ

0 голосов
/ 30 апреля 2019

Попробуйте этот код

    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');
...