Эхо формы не применяется к первому элементу в списке - PullRequest
2 голосов
/ 18 июня 2019

У меня есть список с пользовательским типом записи, и я добавил дополнительные поля со статусом, исходя из мета-значения и кнопки, чтобы переключать статус. Код работает без проблем и переключается между онлайн и автономным мета-значением. Однако я обнаружил, что теги формы не применяются к первому элементу в списке. Когда я ожидаю код, я вижу для первого элемента только скрытое поле ввода и кнопку отправки. Можете ли вы поддержать меня, чтобы исправить это. Вот код, который создает оба столбца

function my_manage_portfolio_columns( $column, $post_id ) {
    global $post;

    switch( $column ) {

        /* If displaying the 'status' column. */
        case 'status' :

            /* Get the post meta value. */
            $status = get_post_meta( $post_id, 'post_status_visible', true );

            /* If status is online */
            if ( $status == "online" )
                echo '<span class="badge_green">'.$status.'</span>';

            /* If there is a duration, append 'minutes' to the text string. */
            else
                echo '<span class="badge_red">'.$status.'</span>';



            break;

        /* If displaying the 'change button' column. */
        case 'change' :
        echo '<form action="" method="post">
                <input type="hidden" name="post_id" value="'.$post_id.'">
                <input type="submit" class="button action" name="submit_btn" value="Change">
                </form>';

            break;

        /* Just break out of the switch statement for everything else. */
        default :
            break;
    }
}

1 Ответ

0 голосов
/ 18 июня 2019

Я думаю, что вы используете неправильную реализацию API управления столбцами пользовательских столбцов. Должно быть так:

CPT: my_portfolio

add_action( 'manage_my_portfolio_posts_custom_column' , 'custom_my_portfolio_column', 10, 2 );
function custom_my_portfolio_column( $column, $post_id ) {
     switch( $column ) {

        /* If displaying the 'status' column. */
        case 'status' :

            /* Get the post meta value. */
            $status = get_post_meta( $post_id, 'post_status_visible', true );

            /* If status is online */
            if ( $status == "online" )
                echo '<span class="badge_green">'.$status.'</span>';

            /* If there is a duration, append 'minutes' to the text string. */
            else
                echo '<span class="badge_red">'.$status.'</span>';



            break;

        /* If displaying the 'change button' column. */
        case 'change' :
        echo '<form action="" method="post">
                <input type="hidden" name="post_id" value="'.$post_id.'">
                <input type="submit" class="button action" name="submit_btn" value="Change">
                </form>';

            break;


    }
}

Также прочтите это для подробной информации: https://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...