Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Campo personalizado wordpress

Estas en el tema de Campo personalizado wordpress en el foro de WordPress en Foros del Web. Hola amigos aqui de nuevo, tengo otro problemita espero que me ayuden. Como puedo colocar 2 editores en wordpress o un custom field que acepte ...
  #1 (permalink)  
Antiguo 15/08/2014, 20:19
Avatar de satanson123  
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 10 años
Puntos: 2
Campo personalizado wordpress

Hola amigos aqui de nuevo, tengo otro problemita espero que me ayuden. Como puedo colocar 2 editores en wordpress o un custom field que acepte html?

La idea es colocar como si fuera 2 entradas en la misma entrada pero separados uno al lado del otro. El del lado derecho sera la entrada y el del lado izquierdo sera el otro editor o el otro custom field, lo colocare como si fuera un sidebar.

Esto me pidio el cliente Gracias por la ayuda.

Última edición por satanson123; 15/08/2014 a las 20:26
  #2 (permalink)  
Antiguo 15/08/2014, 22:04
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 14 años, 5 meses
Puntos: 1146
Respuesta: Campo personalizado wordpress

checa esto
http://codex.wordpress.org/Function_Reference/wp_editor
  #3 (permalink)  
Antiguo 16/08/2014, 08:38
Avatar de satanson123  
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 10 años
Puntos: 2
Respuesta: Campo personalizado wordpress

Cita:
Iniciado por ArturoGallegos Ver Mensaje
Gracias por contestar amigo tenia mucho que no te leia, bueno al agregar el codigo de la pagina que me sugeriste sale de esta manera



No se guarda y no se como llamar los datos que se coloquen ahi, y quiero que aparesca abajo del otro editor. Gracias por tu ayuda por favor contesta lo antes posible.

Use este codigo para colocarlo

Código PHP:
Ver original
  1. $content = '';
  2. $editor_id = 'mycustomeditor';
  3.  
  4. wp_editor( $content, $editor_id );
  #4 (permalink)  
Antiguo 16/08/2014, 10:29
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 14 años, 5 meses
Puntos: 1146
Respuesta: Campo personalizado wordpress

Debes utilizarlo como cualquier otro campo que agregues dígase de texto, textarea u otro.

Lo indispensable para guardar y mostrar el campo es que tenga nombre, si ves los argumentos que soporta uno de ellos es textarea_name agrégaselo y procede como lo harías de costumbre con los custom fields
  #5 (permalink)  
Antiguo 16/08/2014, 11:06
Avatar de satanson123  
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 10 años
Puntos: 2
Respuesta: Campo personalizado wordpress

Cita:
Iniciado por ArturoGallegos Ver Mensaje
Debes utilizarlo como cualquier otro campo que agregues dígase de texto, textarea u otro.

Lo indispensable para guardar y mostrar el campo es que tenga nombre, si ves los argumentos que soporta uno de ellos es textarea_name agrégaselo y procede como lo harías de costumbre con los custom fields
Mi amigo gracias por todo, buscando como 2 horas con google y bing encontre este codigo que funciona perfecto.

Código PHP:
Ver original
  1. define('WYSIWYG_META_BOX_ID', 'my-editor');
  2. define('WYSIWYG_EDITOR_ID', 'myeditor'); //Important for CSS that this is different
  3. define('WYSIWYG_META_KEY', 'extra-content');
  4.  
  5. add_action('admin_init', 'wysiwyg_register_meta_box');
  6. function wysiwyg_register_meta_box(){
  7.         add_meta_box(WYSIWYG_META_BOX_ID, __('WYSIWYG Meta Box', 'wysiwyg'), 'wysiwyg_render_meta_box', 'post');
  8. }
  9.  
  10. function wysiwyg_render_meta_box(){
  11.  
  12.         global $post;
  13.  
  14.         $meta_box_id = WYSIWYG_META_BOX_ID;
  15.         $editor_id = WYSIWYG_EDITOR_ID;
  16.  
  17.         //Add CSS & jQuery goodness to make this work like the original WYSIWYG
  18.         echo "
  19.                <style type='text/css'>
  20.                        #$meta_box_id #edButtonHTML, #$meta_box_id #edButtonPreview {background-color: #F1F1F1; border-color: #DFDFDF #DFDFDF #CCC; color: #999;}
  21.                        #$editor_id{width:100%;}
  22.                        #$meta_box_id #editorcontainer{background:#fff !important;}
  23.                        #$meta_box_id #$editor_id_fullscreen{display:none;}
  24.                </style>
  25.  
  26.                <script type='text/javascript'>
  27.                        jQuery(function($){
  28.                                $('#$meta_box_id #editor-toolbar > a').click(function(){
  29.                                        $('#$meta_box_id #editor-toolbar > a').removeClass('active');
  30.                                        $(this).addClass('active');
  31.                                });
  32.  
  33.                                if($('#$meta_box_id #edButtonPreview').hasClass('active')){
  34.                                        $('#$meta_box_id #ed_toolbar').hide();
  35.                                }
  36.  
  37.                                $('#$meta_box_id #edButtonPreview').click(function(){
  38.                                        $('#$meta_box_id #ed_toolbar').hide();
  39.                                });
  40.  
  41.                                $('#$meta_box_id #edButtonHTML').click(function(){
  42.                                        $('#$meta_box_id #ed_toolbar').show();
  43.                                });
  44.  
  45.                 //Tell the uploader to insert content into the correct WYSIWYG editor
  46.                 $('#media-buttons a').bind('click', function(){
  47.                     var customEditor = $(this).parents('#$meta_box_id');
  48.                     if(customEditor.length > 0){
  49.                         edCanvas = document.getElementById('$editor_id');
  50.                     }
  51.                     else{
  52.                         edCanvas = document.getElementById('content');
  53.                     }
  54.                 });
  55.                        });
  56.                </script>
  57.        ";
  58.  
  59.         //Create The Editor
  60.         $content = get_post_meta($post->ID, WYSIWYG_META_KEY, true);
  61.         the_editor($content, $editor_id);
  62.  
  63.         //Clear The Room!
  64.         echo "<div style='clear:both; display:block;'></div>";
  65. }
  66.  
  67. add_action('save_post', 'wysiwyg_save_meta');
  68. function wysiwyg_save_meta(){
  69.  
  70.         $editor_id = WYSIWYG_EDITOR_ID;
  71.         $meta_key = WYSIWYG_META_KEY;
  72.  
  73.         if(isset($_REQUEST[$editor_id]))
  74.                 update_post_meta($_REQUEST['post_ID'], WYSIWYG_META_KEY, $_REQUEST[$editor_id]);
  75.  
  76. }

Y para mostrarlo

Código PHP:
<?php $content get_post_meta($post->IDWYSIWYG_META_KEYtrue); ?>
<p><?php echo $content?></p>
  #6 (permalink)  
Antiguo 16/08/2014, 12:04
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 14 años, 5 meses
Puntos: 1146
Respuesta: Campo personalizado wordpress

jeje me da mucho gusto ver que te has esmerado en conseguirlo... ahora te mostrare el código de como lo hago yo.

Código PHP:
Ver original
  1. function add_box_field(){
  2.     add_meta_box('id',__('titulo del box'),'add_box_content','myposttype');
  3. }
  4. add_action( 'add_meta_boxes', 'add_box_field' );
  5.  
  6. function add_box_content(){
  7.     $txt_content = get_post_meta( $post->ID, 'my_txt_name', true );; //carga el contenido guardado
  8.     $txt_editor_id = 'my_txt_id';//id del campo
  9.     $txt_settings = array('textarea_name'=>'my_txt_name');//asigna nombre para poder guardarlo
  10.     wp_editor($txt_content, $txt_editor_id, $txt_settings );//muestra el campo
  11. }
  12.  
  13. function save_box(){
  14.     global $post;
  15.     if($post->post_type=='myposttype'){//comprueba el tipo de post sea el correcto - en caso se ser un custom post type
  16.         if(isset($_POST['my_txt_name'])){
  17.             update_post_meta($post->ID, 'my_txt_name', $_POST['my_txt_name']);
  18.         }
  19.     }
  20. }
  21. add_action('save_post', 'save_box');

Para mostrarlo en el frontend es el mismo método que ya tienes así que lo omito.

Etiquetas: campo, personalizado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:08.