is_main_query() ) {
// Filtrar claramente los posts que tienen '_post_from_ai_feed' con valor
$query->set('meta_query', [
[
'key' => '_post_from_ai_feed',
'value' => 0,
'compare' => '>',
'type' => 'NUMERIC'
]
]);
// Opcional: Cambia el título de la página claramente
add_filter('admin_title', function($admin_title){
return __('Historial de Importaciones', 'ai-feeds') . ' ‹ ' . get_bloginfo('name');
});
// Cambia claramente el encabezado de la página:
add_filter('gettext', function($translated_text, $text, $domain){
if($text === 'Posts' && $domain === 'default') {
return __('Historial de Importaciones', 'ai-feeds');
}
return $translated_text;
}, 10, 3);
}
}
// Fuerza claramente las columnas Feed Original y Link Original en vista historial (primero)
add_filter('manage_edit-post_columns', 'aife_forzar_columnas_historial', PHP_INT_MAX);
function aife_forzar_columnas_historial($columns) {
$aife_historial = filter_input( INPUT_GET, 'aife_historial', FILTER_SANITIZE_STRING );
if ($aife_historial == '1') {
$nuevas_columnas = [
'feed_original' => '' . esc_html__('Feed', 'ai-feeds') . '',
'link_original' => '' . esc_html__('Link', 'ai-feeds') . '',
];
return array_merge($nuevas_columnas, $columns);
}
return $columns;
}
// Rellena claramente el contenido de las columnas Feed Original y Link Original
add_action('manage_post_posts_custom_column', 'aife_rellenar_columnas_historial', 10, 2);
function aife_rellenar_columnas_historial($column, $post_id) {
$aife_historial = filter_input( INPUT_GET, 'aife_historial', FILTER_SANITIZE_STRING );
if ($aife_historial == '1') {
if ($column === 'feed_original') {
$feed_original_id = get_post_meta($post_id, '_post_from_ai_feed', true);
if ($feed_original_id) {
$feed_post = get_post($feed_original_id);
if ($feed_post) {
$edit_link = get_edit_post_link($feed_original_id);
echo 'Feed';
} else {
echo esc_html__('Feed no encontrado', 'ai-feeds');
}
} else {
echo esc_html__('Sin feed asociado', 'ai-feeds');
}
}
if ($column === 'link_original') {
$feed_original_id = get_post_meta($post_id, '_post_from_ai_feed', true);
if ($feed_original_id) {
$original_url = get_post_meta($feed_original_id, '_original_url', true);
if ($original_url) {
echo '' . esc_html__('Original', 'ai-feeds') . '';
} else {
echo esc_html__('URL no disponible', 'ai-feeds');
}
} else {
echo esc_html__('-', 'ai-feeds');
}
}
}
}
//Agrego la columna AiFeed imported a la página general de posts.
// Agregar la columna
add_filter('manage_edit-post_columns', 'aife_agregar_columna_importado', 999);
function aife_agregar_columna_importado($columns) {
$columns['ai_feed_imported'] = __('AI Feed Imported', 'ai-feeds');
return $columns;
}
// Mostrar contenido de la columna
add_action('manage_post_posts_custom_column', 'aife_contenido_columna_importado', 10, 2);
function aife_contenido_columna_importado($column, $post_id) {
if ($column === 'ai_feed_imported') {
$importado = get_post_meta($post_id, '_post_from_ai_feed', true);
echo $importado ? '✅' : '';
}
}
// Dar ancho fijo a la columna
add_action('admin_head-edit.php', 'aife_estilos_columna_importado');
function aife_estilos_columna_importado() {
}
// Filtrar claramente las entradas según meta "_procesado_en_cola"
add_action('pre_get_posts', 'aife_filtrar_cola_trabajo');
function aife_filtrar_cola_trabajo($query) {
if (!is_admin() || !$query->is_main_query()) {
return;
}
$aife_cola = filter_input( INPUT_GET, 'aife_cola', FILTER_SANITIZE_STRING );
if ($aife_cola && $query->get('post_type') === 'aife_original') {
$meta_query = [
[
'key' => '_procesado_en_cola',
'compare' => 'NOT EXISTS',
],
];
$query->set('meta_query', $meta_query);
}
}
add_action('save_post_aife_original', 'aife_forzar_original_a_draft', 10, 3);
function aife_forzar_original_a_draft($post_ID, $post, $update) {
// Estados permitidos claramente: draft, trash (papelera) o delete permanentemente
if (in_array($post->post_status, ['trash', 'auto-draft'], true)) {
return; // permite enviar a papelera o borrado automático sin cambios
}
// Si intenta restaurar desde la papelera o guardar otro estado, fuerza a 'draft'
if ($post->post_status !== 'draft') {
remove_action('save_post_aife_original', 'aife_forzar_original_a_draft', 10);
wp_update_post([
'ID' => $post_ID,
'post_status' => 'draft'
]);
add_action('save_post_aife_original', 'aife_forzar_original_a_draft', 10, 3);
}
}
// Impedir claramente la restauración desde la papelera
add_action('untrash_post', 'aife_impedir_restauracion_desde_papelera', 10, 2);
function aife_impedir_restauracion_desde_papelera($post_id, $previous_status) {
if (get_post_type($post_id) === 'aife_original') {
wp_die(esc_html__('No está permitido restaurar este tipo de publicación desde la papelera.', 'ai-feeds'));
}
}
add_filter('parent_file', 'aife_original_force_menu_active');
function aife_original_force_menu_active($parent_file) {
global $post_type;
if ($post_type === 'aife_original') {
// Aquí debes especificar el slug exacto de tu menú personalizado
return 'edit.php?post_type=aife_original&aife_cola=1';
}
return $parent_file;
}
add_filter('submenu_file', 'aife_original_force_submenu_active');
function aife_original_force_submenu_active($submenu_file) {
global $post_type, $pagenow;
if ($post_type === 'aife_original' && $pagenow === 'post.php') {
// Aquí también especifica exactamente la URL del submenú que creaste
return 'edit.php?post_type=aife_original&aife_cola=1';
}
return $submenu_file;
}