Tips & Trucos para Wordpress

Tema en 'Webmasters' iniciado por Animedia, 22 Ene 2009.

  1. Ani

    Animedia
    Expand Collapse
    Cabo

    Mensajes:
    117
    Me Gusta recibidos:
    4
    1.- ¿Cómo agrego más widgets en mi sitio?

    Supongamos que deseas habilitar 2 sidebar como widgets para controlarlos cómodamente desde el panel de administración. simplemente hay que agregar esto a functions.php de la plantilla (o crear el archivo si no existe):

    Código:
    [COLOR=#000000][FONT=Courier New][COLOR=#0000bb]<?php [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]if ( [/COLOR][COLOR=#0000bb]function_exists[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'register_sidebars'[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]) ) [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]register_sidebars[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]2[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]); [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]?>[/COLOR] [/FONT][/COLOR]
    
    Y guardar los sidebars como sidebar1.php y sidebar2.php :arriba:.

    Los incluyes de esta forma:

    Código:
    [COLOR=#000000][FONT=Courier New][COLOR=#0000bb]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#0000bb]TEMPLATEPATH [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#dd0000]'/sidebar1.php'[/COLOR][COLOR=#007700]); [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]?> [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#0000bb]TEMPLATEPATH [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#dd0000]'/sidebar2.php'[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000bb]?>[/COLOR][/FONT][/COLOR]
    
    ¿Puedo entonces agregar más sidebars?

    Sí. Se pueden tener tantos sidebars como se desee, siempre y cuando se modifique el número en el código de functions.php (y por supuesto exista el archivo correspondiente).

    Lo demás va por cuenta de la creatividad. Es posible tener "widgetizado" casi todo el sitio, lo cual -dependiendo del caso- nos ahorrará mucho trabajo de codificación manual.

    2.- Hacer que los artículos sólo muestren una categoría, la cual a la vez pertenece a una categoría padre

    Expliquemos mejor el escenario. Tus categorías están organizadas de la siguiente manera:

    Actualidad
    -- Política
    -- Nacionales
    -- Internacionales

    Entetenimiento
    -- Humor
    -- Cine
    -- Teatro

    Y tienes un artículo llamado "Chiste político" que asignaste a las categorías Política y Humor

    En condiciones normales tu artículo aparecerá así:

    Política - Humor
    Chiste político

    Pero en realidad deseas que salga así:

    Humor
    Chiste político

    Éste es el procedimiento para lograrlo:
    Código:
    [COLOR=#000000][FONT=Courier New]<div class="articulo">[/FONT][/COLOR]
    [FONT=Courier New][COLOR=#000000][COLOR=#0000bb]<?php [/COLOR][COLOR=#007700]if ([/COLOR][COLOR=#0000bb]have_posts[/COLOR][COLOR=#007700]()) : while ([/COLOR][COLOR=#0000bb]have_posts[/COLOR][COLOR=#007700]()) : [/COLOR][COLOR=#0000bb]the_post[/COLOR][COLOR=#007700](); [/COLOR][/COLOR][/FONT][COLOR=#000000][FONT=Courier New][COLOR=#0000bb]?>[/COLOR][/FONT]
    [FONT=Courier New]<p class="nombre-categoria">[/FONT]
    [FONT=Courier New][COLOR=#0000bb]<?php[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]foreach(([/COLOR][COLOR=#0000bb]get_the_category[/COLOR][COLOR=#007700]()) as [/COLOR][COLOR=#0000bb]$cat[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]) {[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]        if ([/COLOR][COLOR=#0000bb]$cat[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]category_parent [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]7[/COLOR][COLOR=#007700]) [/COLOR][/FONT][FONT=Courier New][COLOR=#ff8000]// El ID de la categoría "Entetenimiento", padre de "Humor"[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]echo [/COLOR][COLOR=#dd0000]'<a href="' [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000bb]get_category_link[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$cat[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]cat_ID[/COLOR][COLOR=#007700]) . [/COLOR][COLOR=#dd0000]'">' [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000bb]$cat[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]cat_name [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#dd0000]'</a>'[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];[/FONT][/COLOR]
    [FONT=Courier New][COLOR=#007700]    } [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]?>[/COLOR][/FONT]
    [FONT=Courier New]</p>[/FONT]
    [FONT=Courier New]<!-- Y el resto del código -->[/FONT]
    [FONT=Courier New]<p class="titulo-del-articulo"><a href="[COLOR=#0000bb]<?php the_permalink[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000bb]?>[/COLOR]" rel="bookmark">[COLOR=#0000bb]<?php the_title[/COLOR][COLOR=#007700](); [/COLOR][COLOR=#0000bb]?>[/COLOR]</a><span class="enlace-para-editar">[COLOR=#0000bb]<?php edit_post_link[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'Editar'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#dd0000]' | '[/COLOR][COLOR=#007700], [/COLOR][COLOR=#dd0000]''[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000bb]?>[/COLOR]</span></p>[/FONT]
    [FONT=Courier New][COLOR=#0000bb]<?php [/COLOR][COLOR=#007700]endwhile; else: [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]?>[/COLOR][/FONT]
    [FONT=Courier New]    <p>[COLOR=#0000bb]<?php _e[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'El tema no existe.'[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000bb]?>[/COLOR]</p>[/FONT]
    [FONT=Courier New][COLOR=#0000bb]<?php [/COLOR][COLOR=#007700]endif; [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]?>[/COLOR][/FONT]
    [FONT=Courier New]</div>[/FONT][/COLOR]
    
    3.- ¿Cómo puedo poner un link en mi blog que me muestre un post aleatorio?

    Con el siguiente código, que debes copiar en un fichero con extensión PHP:

    Código:
    [COLOR=#000000][FONT=Courier New][COLOR=#0000bb]<?php [/COLOR][COLOR=#007700]require([/COLOR][COLOR=#dd0000]'wp-config.php'[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000bb]$single [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000bb]$siteurl [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]get_settings[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'siteurl'[/COLOR][COLOR=#007700]); [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]?> [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]<?php [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]$numposts [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$wpdb[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]get_var[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]); [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]$go[/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]rand[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700],([/COLOR][COLOR=#0000bb]$numposts[/COLOR][/FONT][FONT=Courier New][COLOR=#007700])); [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]$consulta [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' LIMIT " [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000bb]$go [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#dd0000]" , 1 "[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]; [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]$numposts2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$wpdb[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]get_var[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$consulta[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]); [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]$direc [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]get_permalink[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$numposts2[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]); [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]header [/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"Location: $direc"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]); [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]?>[/COLOR][/FONT][/COLOR]
    
    Luego simplemente has de subir el fichero con el nombre que quieras con extensión .php e incluir un link hacia dicho archivo para tenerlo funcionando.
    Crédito

    4. Cuando me intento loguear en Wordpress 2.5 sale este mensaje: "Fatal Error: Cannot use string offset as an array, line 46 dashboard.php" ¿Cómo hago?

    Generalmente este error ocurre cuando migramos o cuando importamos una base de datos. La solución es ésta:

    1) Vé a tu phpMyAdmin y haz clic en la tabla wp_options:

    [​IMG]

    2) Una vez dentro de la tabla presiona el botón Buscar:

    [​IMG]

    3) En el campo option_name escribe "dashboard_widget_options", luego clic en Aceptar:

    [​IMG]

    4) Te aparecerá una sola tabla que deberás eliminar presionando la X:

    Intenta loguearte de nuevo.

    Fuente: http://wordpress.org/support/topic/164836

    5.- Colocar el nombre de usuario en la página, al estilo de "Hola [nombre de usuario]"

    Copia y pega el siguiente código:

    Código:
    [COLOR=#000000][FONT=Courier New][COLOR=#0000bb]<?php[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]global [/COLOR][COLOR=#0000bb]$user_identity[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]get_currentuserinfo[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]();[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]if ([/COLOR][COLOR=#0000bb]$user_identity [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#dd0000]''[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]) {[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]    echo([/COLOR][COLOR=#dd0000]'Hola invitado'[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]} else {[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]    echo([/COLOR][COLOR=#dd0000]'<p>Hola <strong>' [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000bb]$user_identity [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#dd0000]'</strong></p>'[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#007700]}[/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000bb]?>[/COLOR] [/FONT][/COLOR]
    Fuente: http://wordpress.org/support/topic/123685
     

Compartir esta página