inigonz
Respuestas de foro creadas
-
Foro: WordPress Avanzado
En respuesta a: Orden de los terms en un postBuenas,
Al final lo solucione con código, porque con el plugin tenia que decirle en otra pagina el orden de los terms de cada cpt, y no me gusto mucho, ya que no soy quien mete el contenido y las personas encargadas de ello se pueden volver locos.
Seguí buscando por internet y vi que la función register_taxonomy tiene un argumento «sort», que mantiene el orden de insercion de los terms en el cpt, como no me funcionaba estuve buscando el porque, y vi que había un bug pero se soluciona añadiendo en los argumentos ‘orderby’ => ‘term_order’, quedaria de esta manera para que funcione:
register_taxonomy( 'wptests_tax', 'post', array( 'sort' => true, 'args' => array( 'orderby' => 'term_order', ), ) );
Lo único que el nombre de la taxonomía me ha cambiado de servicios por etiquetas.
Saludos
Foro: WordPress Avanzado
En respuesta a: Orden de los terms en un postBuenas Alvaro,
Leí la descripción del plugin pero ya veo que no entendí bien lo que ponía o en que estaría pensando. Muchas gracias.
Foro: WordPress Avanzado
En respuesta a: Orden de los terms en un postBuenas Alvaro, muchas gracias por tu respuesta.
No se si es a lo que te refieres, pero por ejemplo tengo un proyecto que le añado 3 terms no jerárquicos, primero añado programación, luego diseño y luego estudio. Cuando le das a actualizar o guardar el proyecto, el te ordena alfabéticamente los terms, pero yo quiero que me los muestre por orden en los que he añadido, es decir, programación, luego diseño y luego estudio. En la vista del proyecto seria lo mismo, que los muestre en el orden que los he añadido. Sabéis si se puede hacer?
Gracias
Foro: WordPress Avanzado
En respuesta a: Taxonomía no Jerárquica o campo personalizadoMuchas gracias Pablo por tu respuesta, opino lo mismo que tu.
Foro: WordPress Avanzado
En respuesta a: Comportamiento de TaxonomíasBuenas,
Como era diferente tipo de taxonomía, he creado otro debate, entonces los pongo juntos y cierro este o como hago?
Gracias
Foro: WordPress Avanzado
En respuesta a: Funcion add_settings_field, para que sirve?ok, perfecto. Muchísimas gracias.
Un saludo
Foro: WordPress Avanzado
En respuesta a: Funcion add_settings_field, para que sirve?A mi sin ello me está funcionando correctamente, pero era por saber, no vaya a ser que se me este escapando algo.
Muchas gracias, un saludo
Foro: WordPress Avanzado
En respuesta a: Funcion add_settings_field, para que sirve?Muchas gracias por la respuesta Almendron.
Acabo de comprender que esa función te crea como un bloque para esos campos, columna izquierda con el label de la función y columna derecha con los campos que se añaden en el callback.
Es necesario poner la función? si no la pones afecta a algo?Gracias
Foro: Hacks
En respuesta a: Conexiones a la base de datos con páginas personalizadasBuenas,
Mírate esto en el codex: https://codex.wordpress.org/Class_Reference/wpdb
Espero que te sirva, yo cuando he necesitado llamar a tablas de la bbdd lo he hecho así, ya sean tablas del wp o tablas propias.
Saludos
Foro: WordPress Avanzado
En respuesta a: Permisos para editar posts de otro autorBuenas Dackar,
Que error te da?
La parte de seguridad la hago en el plugin, y está copiada en el ultimo comentario, y lo otro que necesitas, es el cpt para ver como llamo a los caps del cpt proyecto, no se que mas puede faltar.Lo otro que comento, es con el plugin options-framework, para crear un theme options, desde ahí genero una página-options donde me muestra las taxonomías de mi cpt proyecto, con los usuarios registrados, voy marcando que taxonomías puede editar cada usuario.
Foro: WordPress Avanzado
En respuesta a: Subir / visualizar imagenes en libreria sin estar logueadoAlgo así había pensado pero como no lo he utilizado nunca… me pongo con ello.
Muchas gracias por la respuesta
Foro: WordPress Avanzado
En respuesta a: Fecha límite para mostrar una entradaBuenas,
He visto este código, a ver si te sirve:
$args = array( 'post_type' => 'post', 'post_status' => 'publish', 'orderby' => 'date', 'order' => 'DESC', // Using the date_query to filter posts from last week 'date_query' => array( array( 'after' => '1 week ago' ) ) );
Url: https://wordpress.stackexchange.com/questions/99265/display-posts-of-the-last-7-days
Foro: Diseño – Temas y plantillas
En respuesta a: Ocultar elemento mediante CSSBuenas,
Primero tienes una regla css que te bloquea el display none
@media screen and (min-width: 621px) style.css?ver=1.4.5:922 #wpforo-wrap #wpforo-menu .wpf-menu { display: block!important; }
Deberías poner !important en tu código para que tengo prioridad sobre lo demás.
Pero acabo de ver que ocultado ese menu, tampoco te vas a librar del error que se visualiza, ya que el texto ese no esta dentro de ese elemento contenedor.Tienes que buscar en el plugin, la frase esa (< class=»menu-mobilenav-container»>), y comentarla
Foro: WordPress Avanzado
En respuesta a: Permisos para editar posts de otro autorBuenas de nuevo,
Ya lo he conseguido, ha costado pero bueno, funciona que es lo importante.
// CPT PROYECTO $pr_labels = array( 'name' => __( 'Proyectos' ), 'singular_name' => __( 'Proyecto' ), 'add_new' => __( 'Añadir nuevo' ), 'add_new_item' => __( 'Añadir nuevo Proyecto' ), 'edit_item' => __( 'Editar Proyecto' ), 'new_item' => __( 'Nuevo Proyecto' ), 'view_item' => __( 'Ver Proyecto' ), 'search_items' => __( 'Buscar Proyecto' ), 'not_found' => __( 'No se encontraron Proyectos' ), 'not_found_in_trash' => __( 'No se encontraron Proyectos en la papelera' ) ); $pr_args = array( 'labels' => $pr_labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'menu_position ' => 20, 'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes', 'post-formats', 'revisions', 'author' ), 'capability_type' => 'proyecto', 'capabilities' => array( 'edit_post' => 'edit_proyecto', 'read_post' => 'read_proyecto', 'delete_post' => 'delete_proyecto', 'edit_posts' => 'edit_proyectos', 'edit_others_posts' => 'edit_others_proyectos', 'publish_posts' => 'publish_proyectos', 'edit_publish_posts' => 'edit_publish_proyectos', 'read_private_posts' => 'read_private_proyectos', 'create_posts' => 'edit_proyectos', 'delete_posts' => 'delete_proyectos', 'delete_others_posts' => 'delete_others_proyectos', ), 'map_meta_cap' => true, 'hierarchical' => false, 'has_archive' => true, 'rewrite' => array( 'slug' => 'proyecto', ), 'menu_icon' => 'dashicons-screenoptions' ); $pr_args = apply_filters( 'proyecto_args', $pr_args ); register_post_type( 'proyecto', $pr_args );
Y en el plugin
// ACTIVACION / DESACTIVACION PLUGIN: CREACION / ELIMINACION DE ROLES - CAPS class CustomEditorRole { private static $role = 'rol12'; private $role_label; function __construct() { // here we need a real, loaded, text domain $this->role_label = __( 'Rol12' ); } function addRole() { global $wp_roles; if ( ! $wp_roles instanceof WP_Roles ) { $wp_roles = new WP_Roles; } // Crear Rol para los Recas $caps = array( 'read' => true, 'upload_files' => true, 'edit_theme_options' => true, ); // Añadir caps CTP y TAX al rol $caps['edit_proyecto'] = TRUE; $caps['publish_proyecto'] = TRUE; $caps['delete_proyecto'] = TRUE; // Custom cap $caps['edit_same_tax_posts'] = TRUE; // Create new role with custom caps add_role( self::$role, $this->role_label, $caps ); } function removeRole() { global $wp_roles; if ( ! $wp_roles instanceof WP_Roles ) { $wp_roles = new WP_Roles; } remove_role(self::$role); } } register_activation_hook( __FILE__, array( new CustomEditorRole, 'addRole' ) ); register_deactivation_hook( __FILE__, array( new CustomEditorRole, 'removeRole' ) ); // PERMISOS DE LECTURA / ESCRITURA PARA LOS POST PROPIOS / OTROS / MISMA CATEGORIA class CustomEditorCaps { function manageCaps( $allcaps, $caps, $args, $user ) { if ( ! $this->shouldManage( $args[0], $user ) ) { return $allcaps; } // Are we saving? $action = filter_input( INPUT_POST, 'action', FILTER_SANITIZE_STRING ); $method = strtoupper( filter_var($_SERVER['REQUEST_METHOD'], FILTER_SANITIZE_STRING ) ); if ( $method !== 'POST' ) { // not saving global $pagenow; // we are interested only on post list and post edit screens if ( is_admin() && in_array( $pagenow, array( 'post.php', 'post-new.php', 'edit.php' ), TRUE ) ) { $screen_id = $pagenow === 'edit.php' ? 'edit-pproyecto' : 'proyecto'; $allcaps = $this->maybeAllow( $args, $allcaps, $user, $screen_id ); } } elseif ( $action === 'editpost' ) { // saving and right action $allcaps = $this->maybeAllowOnSave( $args, $allcaps, $user ); } return $allcaps; // always return: it's a filter } function lockPendingStatus( $data, $postarr ) { return $data; // always return: it's a filter } function allowPreview( $posts, $query ) { if ( is_admin() || ! $query->is_main_query() || empty( $posts ) || ! $query->is_single || $posts[0]->post_type !== 'proyecto' ) { return $posts; // return first argument: it's a filter } $status = get_post_status( $posts[0] ); $post_status_obj = get_post_status_object( $status ); if ( ! $post_status_obj->public && current_user_can('edit_same_tax_posts') ) { // post is pending and our user has our special role // allow preview global $wp_post_statuses; $wp_post_statuses[$status]->public = TRUE; } return $posts; // return first argument: it's a filter } private function maybeAllow( $args, $allcaps, $user, $screen ) { if ( $args[0] === 'edit_others_proyectos' ) { // if filtering 'edit_others_posts' we have no access to single post data // allow cap only on post list screen and before querying posts $allcaps['edit_others_proyectos'] = ! did_action('pre_get_posts') && $screen === 'edit-proyecto'; return $allcaps; } $post = get_post( $args[2] ); $permisos = of_get_option( $user->ID . 'permisos' ); $terms = get_the_terms( $post, 'mercado' ); $termId = ''; $termParent = ''; if ( $terms ) { foreach ( $terms as $term ) { $termId = $term->term_id; $termParent = $term->parent; if ( $termParent != 0 ) { $term_parent = get_term_top_most_parent( $termId, 'mercado' ); $termId = $term_parent['parent']; } if ( $permisos[$termId] == 1 ) { $allcaps['edit_others_proyectos'] = TRUE; $allcaps['edit_published_proyectos'] = TRUE; } } } return $allcaps; // always return: it's a filter } private function maybeAllowOnSave( $args, $allcaps, $user ) { $data = $this->getPostedData(); if ( $data['post_type'] !== 'proyecto' || (int) $data['post_ID'] <= 0 ) { return $allcaps; } $post = get_post( $data['post_ID'] ); $permisos = of_get_option( $user->ID . 'permisos' ); $terms = get_the_terms( $post, 'mercado' ); $termId = ''; $termParent = ''; if ( $terms ) { foreach ( $terms as $term ) { $termId = $term->term_id; $termParent = $term->parent; if ( $termParent != 0 ) { $term_parent = get_term_top_most_parent( $termId, 'mercado' ); $termId = $term_parent['parent']; } if ( $permisos[$termId] == 1 ) { // if post is pending and will stay pending allow editing $allcaps['edit_others_proyectos'] = true; $allcaps['edit_published_proyectos'] = true; } } } return $allcaps; } private function shouldManage( $cap, $user ) { return is_admin() && in_array( $cap, array( 'edit_others_proyectos', 'edit_published_proyectos', 'edit_proyecto', 'edit_post', ), TRUE ) && ! $user->has_cap( 'delete_others_proyectos' ) && $user->has_cap( 'edit_same_tax_posts' ) && ! defined( 'DOING_AJAX' ); // does not affect ajax } private function getPostedData() { return filter_input_array( INPUT_POST, array( 'post_type' => FILTER_SANITIZE_STRING, 'post_ID' => FILTER_SANITIZE_NUMBER_INT, 'original_post_status' => FILTER_SANITIZE_STRING, 'post_status' => FILTER_SANITIZE_STRING, ) ); } } $cap_manager = new CustomEditorCaps; add_filter( 'user_has_cap', array( $cap_manager, 'manageCaps' ), PHP_INT_MAX, 4 ); add_filter( 'posts_results', array( $cap_manager, 'allowPreview' ), 10, 2 ); add_filter( 'wp_insert_post_data', array( $cap_manager, 'lockPendingStatus' ), 10, 2 );
Lo de los permisos genero en el options del options-framework unos checkbox con los terms para cada usuario, y así compruebo si el id de ese usuario tiene permisos para ese term
Saludos
Foro: WordPress Avanzado
En respuesta a: Permisos para editar posts de otro autorBuenas de nuevo,
He encontrado el link de arriba, donde explican como dar permisos especiales a los usuarios, basándose en el rol de author.
Los autores solo pueden editar en estos casos:Los post de otros – si están pendiente de revisión
Los suyos propios – si están pendiente de revisión o borrador
Si estan publicados ya no pueden editarlosLo he probado y funciona perfectamente, ahora solo tengo que modificarlo para que se adapte a lo que yo necesito.
Un saludo