WordPress - начин да изкараме къстам поле от пост страница (админ панел)

Blinky

Administrator
Екип
Здравейте, туй като наскоро ми се наложи да се прави. Реших и да го споделя тук. Ако искате да изкарате някаква къстам променлива, която да е за всеки пост на него или някой бокс от архив страница, ето и начина:

Отивате в functions.php на темата и добавяте следния код:

PHP:
function custom_meta_box() {
    add_meta_box(
        'custom_meta_box_id',      
        'Name of the field',                
        'custom_meta_box_callback',
        'post',                    
        'normal',                  
        'default'                  
    );
}
add_action('add_meta_boxes', 'custom_meta_box');

function custom_meta_box_callback($post) {
    wp_nonce_field('custom_meta_box_nonce_action', 'custom_meta_box_nonce');

    $custom_field_value = get_post_meta($post->ID, '_custom_field_key', true);

    echo '<textarea id="custom_field_id" name="custom_field_name" style="width: 100%;" rows="5">' . esc_textarea($custom_field_value) . '</textarea>';
}

function save_custom_meta_box_data($post_id) {
    if (!isset($_POST['custom_meta_box_nonce']) || !wp_verify_nonce($_POST['custom_meta_box_nonce'], 'custom_meta_box_nonce_action')) {
        return;
    }

    if (isset($_POST['custom_field_name'])) {
        $custom_field_value = sanitize_textarea_field($_POST['custom_field_name']);

        update_post_meta($post_id, '_custom_field_key', $custom_field_value);
    }
}
add_action('save_post', 'save_custom_meta_box_data');

function add_custom_field_to_body($content) {
    if (is_single()) {
        global $post;

        $custom_field_value = get_post_meta($post->ID, '_custom_field_key', true);

        if (!empty($custom_field_value)) {
            $content .= "\n<!-- Name of the field: " . esc_html($custom_field_value) . " -->\n";
        }
    }

    return $content;
}
add_filter('the_content', 'add_custom_field_to_body');

После намирате лейута, в който искате да го интегрирате:

И слагате в началото при променливите нова:

PHP:
$variable = get_post_meta($post_id, '_custom_field_key', true);

И по надолу, на мястото, на което искате да се се появи в HTML-а:

HTML:
<?php if (!empty($variable)) : ?>
    <div class="variable-style">
        <?php echo esc_html__('Name of field: ', 'theme-name') . esc_html($variable); ?>
    </div>
<?php endif; ?>

Така може да се ползва. Защо? Защото в моя случай нямах Custom field в пост-а при редакция, иначе си има полета с value и key, които се ползват за такива случаи. А това е само, ако не нямате друг избор. theme-name е името на темата.

Разбира се, може да си слагате какъвто искате стил и вече сте вие. ;)
 
Още допълнение:



Източник: https://www.facebook.com/groups/wordpressbg/posts/5987357217984915/
 
това още ли се администрира от олег п*тката?
Доколкото знам е на Олег все още. Пич е. Аз не съм имал проблеми с него, дори напротив. Тя е най-голямата група във фейса за WP.
 
Виж файлът 540
и тоя дава съвети и видеа записва :D изхакали му всички сайтове....
То май тогава доста засегнати инсталации имаше пробити. Дори една на мой познат. Не съм я правил аз.
Да не мислиш, че хората искат да отделят време за:

Слагане на:




И куп още други за някакви никакви бюджети. Отделно, всеки би бил податлив на някакви дупки, които дори и платените вендори не са докърпили. А отделно, клиента вика специалист само когато го сгрибе. Аз лично съм виждал пълен отказ от месечен абонамент за поддръжка, и в същото време ..... Мау....ама мен ме хакнаха...Да, каква изненада. Постоянно го наблюдавам това в моята работа. ;)

Не знам какво точно си имал с Олег, но аз лично смятам, че е пич и не съм видял нещо, което да ме разубеди в комуникацията ми с него и от това, което поства. Лично не се познаваме, само май сме се виждали веднъж на някой WordCamp.
 

Back
Горе