Geek the Planet


Desarrollo no image

Published on enero 28th, 2009 | by Angelfire

0

Trozos de código para nuestros theme en wordpress

Esta es una colección bastante interesante de snippets (pequeños trozos de código) para wordpress, es bastante útil si te gusta tener un theme personalizado sin necesidad de tener instalados cientos de plugins, está claro que se debe tener un mínimo de conocimiento en PHP y HTML, nada del otro.

Mostrar posts recientes: Este código muestra los últimos 5 posts

<?php query_posts('showposts=5'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>

Mostrar las actualizaciones recientes de posts/paginas

<?php
$today = current_time('mysql', 1);
$howMany = 5; //Number of posts you want to display
if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_modified_gmt < '$today' ORDER BY post_modified_gmt DESC LIMIT $howMany")):
?>
<h2><?php _e("Recent Updates"); ?></h2>
<ul>
<?php
foreach ($recentposts as $post) {
if ($post->post_title == '') $post->post_title = sprintf(__('Post #%s'), $post->ID);
echo "<li><a href='".get_permalink($post->ID)."'>";
the_title();
echo '</a></li>';
}
?>
</ul>
<?php endif; ?>

Mostrar los comentarios recientes

<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,30) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC
LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$output .= "\n<ul>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author)
.":" . "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"on " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a></li>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;?>


Mostrar el top de comentarios

<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" ><?php echo $title ?></a></li>
<?php } } ?>

Mostrar las categorias

<h2>Categories</h2>
<ul>
<?php wp_list_cats('sort_column=name'); ?>
</ul>

Mostrar las categorias en un menú desplegable

<form action="<?php bloginfo('url'); ?>/" method="get">
<?php
$select = wp_dropdown_categories('show_option_none=Select category&show_count=1&orderby=name&echo=0');
$select = preg_replace("#<select([^>]*)>#”, “<select$1 onchange=’return this.form.submit()’>”, $select); echo $select; ?>
<noscript><input type=”submit” value=”View” /></noscript>
</form>

Mostrar el archivo

<h2>Archives</h2>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>

Mostrar el archivo en un menú desplegable

<select name=\"archive-dropdown\" onChange='document.location.href=this.options[this.selectedIndex].value;’>
<option value=\”\”><?php echo attribute_escape(__(’Select Month’)); ?></option>
<?php wp_get_archives(’type=monthly&format=option&show_post_count=1?); ?> </select>

Mostrar el menú en la sidebar

<h2>Pages</h2>
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>

Mostrar Gravatar

<?php if(function_exists(’get_avatar’)){ echo get_avatar($comment, ‘50?);} ?>

Mostrar los links del blogroll

<ul>
<?php get_links_list(); ?>
</ul>

Mostrar la sección de administración

<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<li><a href="http://www.wordpress.org/">WordPress</a></li>
<?php wp_meta(); ?>
<li><a href="http://validator.w3.org/check?uri=referer">XHTML</a></li>
</ul>

Mostrar un submenú en la sidebar

<?php$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');if ($children) { ?><ul> <?php echo $children; ?>
</ul>
<?php } ?>

Mostrar las tags

<?php the_tags(); ?>

Mostrar una nube de tags: Donde 8 es el tamaño de letras más pequeña y 36 el mayor

<?php wp_tag_cloud('smallest=8&largest=36&'); ?>

Página personalizada (Template):  Este encabezado es necesario para que wordpress entienda que se trata de una página propia

<?php /* Template Name: Portfolio */ ?>

Título dinámico con tags

<title><?phpif (is_home()) { echo bloginfo('name');
} elseif (is_404()) {
echo '404 Not Found';
} elseif (is_category()) {
echo 'Category:'; wp_title('');
} elseif (is_search()) {
echo 'Search Results';
} elseif ( is_day() || is_month() || is_year() ) {
echo 'Archives:'; wp_title('');
} else {
echo wp_title('');
}
?></title>

Usar plugins en determinadas páginas

<?php if ( is_home() ) { include ('file.php'); } ?>

Mostrar RSS Feeds externos

<?php include_once(ABSPATH.WPINC.'/rss.php');
wp_rss('http://ejemplo.com/external.php?type=RSS2', 5); ?>

Mostrar nuestras últimas entradas en twitter

<?php
// Your twitter username.
$username = "TwitterUsername";
// Prefix - some text you want displayed before your latest tweet.
// (HTML is OK, but be sure to escape quotes with backslashes: for example href=\"link.html\")
$prefix = "";
// Suffix - some text you want display after your latest tweet. (Same rules as the prefix.)
$suffix = "";
$feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=1";
function parse_feed($feed) {
$stepOne = explode("<content type=\"html\">", $feed);
$stepTwo = explode("</content>", $stepOne[1]);
$tweet = $stepTwo[0];
$tweet = str_replace(”&lt;”, “<”, $tweet);
$tweet = str_replace(”&gt;”, “>”, $tweet);
return $tweet;
}
$twitterFeed = file_get_contents($feed);
echo stripslashes($prefix) . parse_feed($twitterFeed) . stripslashes($suffix);
?>

Mostrar los subscriptores de feedburner

<?php
function get_subscriptors($feedburneruri) {
  	$url="http://api.feedburner.com/awareness/1.0/GetFeedData?uri=".$feedburneruri;
  	$ch = curl_init();
  	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  	curl_setopt($ch, CURLOPT_URL, $url);
  	$data = curl_exec($ch);
  	curl_close($ch);
	$xml = new SimpleXMLElement($data);
  	return $xml->feed->entry['circulation'];
}
// Mostramos los suscriptores (esto va en el theme).
echo get_subscriptors('usuariofeedburner');
?>

Estos códigos en PHP están mezclados con el HTML, sin embargo si queremos mantener la “limpieza” en nuestro diseño podriamos crear funciones, incluirlas en el fichero functions.php de nuestro theme.

Visto en: Huge Compilation of WordPress Code

Tags: , , ,


About the Author

Systems Engineering, Computer Systems Specialist, Social Engineering Specialist. Social Media Analyzer. Usability and SEO enthusiasm (Este es mi perfil de Twitter...)



Comments are closed.

Back to Top ↑