Как использовать одну кнопку вместо разных ссылок?

Как использовать одну кнопку вместо разных ссылок? | n-wp.ru

У меня проблема заключается в том что я использую один и тот же шаблон для одной из категорий. И в этом шаблоне есть дополнительная кнопка. Кнопка -“ЗАГРУЗИТЬ” И в каждой новости у меня есть ссылки для скачивания информации. И я хочу чтобы эту ссылку для скачивания задействовать кнопкой -“ЗАГРУЗИТЬ”. И ссылку в статье убрать. А то в статье ссылка есть. и кнопка -“ЗАГРУЗИТЬ” не работает. Так как на одну кнопку одна ссылка. Как мне это сделать?

4 Комментарии

  1. Насколько я понял, вы хотите сделать кнопку-ссылку, которая показывалась бы по вашему желанию в постах определенной категории? Это можно реализовать через произвольное поле:
    1. Если произвольное поле заполнено (например, содержит url ссылки), то в посте отображается кнопка-ссылка.
    2. Если произвольное поле не заполнено, то кнопка-ссылка не отображается.

    В одном из своих блогов я реализовал это так.
    Код для functions.php:

    //блок произольных полей СКАЧАТЬ/ПОСМОТРЕТЬ
    add_action('admin_init', 'my_extra_fields_2', 1);
    
    function my_extra_fields_2() {
        add_meta_box( 'extra_fields_2', 'Скачать / Открыть', 'extra_fields_box_func_2', 'post', 'normal', 'high'  );
    }
    
    function extra_fields_box_func_2( $post ){
    ?>
    
    < ?php } add_action('save_post', 'my_extra_fields_update_2', 0); function my_extra_fields_update_2( $post_id ){ if ( !wp_verify_nonce($_POST['extra_fields_nonce_2'], __FILE__) ) return false; if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return false; if ( !current_user_can('edit_post', $post_id) ) return false; if( !isset($_POST['extra']) ) return false; $_POST['extra'] = array_map('trim', $_POST['extra']); foreach( $_POST['extra'] as $key=>$value ){ if( empty($value) ) continue delete_post_meta($post_id, $key); update_post_meta($post_id, $key, $value); } return $post_id; }

    Код для шаблона:

    < ?php $my_meta = get_post_custom_values( 'dl_url', $ID ); if ( $my_meta) : ?>
    	
    < ?php endif; ?>
    < ?php $my_meta = get_post_custom_values( 'dm_url', $ID ); if ( $my_meta) : ?>
        
    < ?php endif; ?>
    

    Код для шаблона нужно вставлять в single.php или в другой шаблон (например, в index.php) внутри цикла вывода постов.

  2. Сделал как надо. Но не дождался ответа. Чтобы сделать дополнительные кнопки нужно добавить код между

    
                
            
        
        
                
            
         

    вставить

    
                 
             
         

    потом нужно в этом метакоде

    function my_extra_fields_update_2( $post_id ){
        if ( !wp_verify_nonce($_POST['extra_fields_nonce_2'], __FILE__) ) return false;
        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE  ) return false;
        if ( !current_user_can('edit_post', $post_id) ) return false;
    
        if( !isset($_POST['extra']) ) return false; 
    
        $_POST['extra'] = array_map('trim', $_POST['extra']);
        foreach( $_POST['extra'] as $key=>$value ){
            if( empty($value) )
                continue delete_post_meta($post_id, $key);
    
            update_post_meta($post_id, $key, $value);
        }
        return $post_id;
    }

    Найти строчку

    if( empty($value) )
                continue delete_post_meta($post_id, $key);

    и заменить ее на

    if( empty($value) ) {
    delete_post_meta($post_id, $key);
    continue;
    }

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*