2011 <!-- 5 -->
Enlaces de navegación en edición de posts en WordPress
Algo que me desespera es tener que editar varios posts seguidos en WP (sobre todo antes del lanzamiento) y tener que ir del post actual, a la lista de post y elegir el siguiente post que necesito editar. Por ello he hecho este pequeño script que incluido en el functions.php incluye dos enlaces en la cabecera que apuntan a la edición del post anterior y al siguiente:
function add_navigation_edit_posts() {
if(preg_match('#wp-admin/post\.php#', $_SERVER["SCRIPT_NAME"]) && isset($_GET['post']) && isset($_GET['action']) && $_GET['action'] == 'edit') {
global $post;
if(!empty($post) && $post->post_type == 'post') {
foreach(array(true, false) as $prev) {
$p = get_adjacent_post(false, '', $prev);
if (!empty($p)) {
echo '<script type="text/javascript">';
echo 'jQuery(document).ready(function() {jQuery(".wrap h2").append(\'<a class="add-new-h2" href="'.admin_url('post.php?action=edit&post='.$p->ID).'" title="'.__('Edit').' '.$p->post_title.'">'.($prev?'« ':'').$p->post_title.(!$prev?' »':'').'</a>\');});';
echo '</script>';
}
}
}
}
}
add_action('admin_head', 'add_navigation_edit_posts');
October 26, 2011 a las 12:52 am
Todo bien, pero el navegador que utilizas no tiene pestañas..??
October 29, 2011 a las 3:22 pm
Me gusta la idea
Pero le haría un cambio para hacer el snippet más “WordPress compliant”
Puedes sustituir todas las condiciones del primer if por esta más sencilla:
$current_screen->id = 'post'October 29, 2011 a las 3:25 pm
Upss! me deje un =, sería:
$current_screen->id == ‘post’
Para que no salgan los nuevos enlaces en el listado de posts, sólo en la de edición del post.
October 29, 2011 a las 5:27 pm
Gracias Samuel, pero el script solo sale en la edición de posts, ya que evalua esta condición:
$_GET['action'] == ‘edit’
Eso sí, seguro que al script le faltan muchas cosas
Gracias
October 29, 2011 a las 6:59 pm
Gracias a ti por la idea
Sí, si el script sólo sale en la edición de posts… tanto el original como con la modificación que te propongo.
Únicamente que en el primer comentario puse sólo un
=y así sí que daría el problema de salir también los listados, de ahí mi segundo comentario, poniendo==sale sólo en la ventana de edición. Y no es necesario hacer se pedazo de if que hacesYo es que soy muy fanático de usar siempre los métodos que proporciona WordPress en lugar de hacerlo con php “estándar”. Porque así siempre tienes más opciones de compatibilidad futura e incluso de mejor rendimiento.
Pero vamos, que sí, que el script funciona igual en su formato original