Función para retrasar unos segundos/minutos/horas la publicación en los feed de nuestras entradas/post una vez estos son publicados en WordPress. De esta manera si retrasamos por ejemplo 5 minutos la publicación (solo en los feed) nos da tiempo a revisar bien si hay algún error, en url, textos… antes de que se guarde y publique la url en nuestras RSS.
function retrasar_feed
($where) {
global $wpdb;
if (is_feed
()) {
// tiempo actual
$ahora = gmdate('Y-m-d H:i:s');
// valor que deseamos esperar
$esperar = '10';
$unidad = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// añadir clausala SQL a Where $where
$where .= " AND TIMESTAMPDIFF($unidad, $wpdb->posts.post_date_gmt, '$ahora') > $esperar ";
}
return $where;
}
add_filter
('posts_where', 'retrasar_feed');
Si teneis un formulario de compra de paypal en vuestra web, sabeis que paypal por defecto al usuario que realiza una compra le carga una serie de tasas o impuestos cuyo valor varia dependiendo de su pais… Bueno, si no quereis que sele cobre ninguna tasa, o si quereis que se cobre la misma tasa o impuesto para todos, podeis hacerlo añadiendo el siguiente campo hidden dentro del formulario de paypal:
<input type="hidden" name="tax" value="0.00">
En este caso le hemos puesto “0″, para que no cobre ninguna tasa.
Y un posible ejemplo del formulario completo podria ser el siguiente:
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="miemail@midominio.com">
<input type="hidden" name="item_name" value="Mi producto"
<input type="hidden" name="item_number" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="50.00">
<input type="hidden" name="tax" value="0.00">
<input type="image" src="https://www.paypal.com/es_XC/i/btn/x-click-but22.gif" border="0" name="submit" alt="Paypal">
</form>
Si teneis problemas con los caracteres (acentos, eñes, etc…) de una cadena en php, segurmanente sea por la codificación de esos caracteres esten en latin. La siguiente función php se encarga de buscar y reemplazar (utilizando str_replace()) esos caracteres por los mismos ya codificados en UTF8.
function decodificar_utf8
($cadena){
$buscar = array(
'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ă', 'Ą',
'Ç', 'Ć', 'Č', 'Œ',
'Ď', 'Đ',
'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ă', 'ą',
'ç', 'ć', 'č', 'œ',
'ď', 'đ',
'È', 'É', 'Ê', 'Ë', 'Ę', 'Ě',
'Ğ',
'Ì', 'Í', 'Î', 'Ï', 'İ',
'Ĺ', 'Ľ', 'Ł',
'è', 'é', 'ê', 'ë', 'ę', 'ě',
'ğ',
'ì', 'í', 'î', 'ï', 'ı',
'ĺ', 'ľ', 'ł',
'Ñ', 'Ń', 'Ň',
'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ő',
'Ŕ', 'Ř',
'Ś', 'Ş', 'Š',
'ñ', 'ń', 'ň',
'ò', 'ó', 'ô', 'ö', 'ø', 'ő',
'ŕ', 'ř',
'ś', 'ş', 'š',
'Ţ', 'Ť',
'Ù', 'Ú', 'Û', 'Ų', 'Ü', 'Ů', 'Ű',
'Ý', 'ß',
'Ź', 'Ż', 'Ž',
'ţ', 'ť',
'ù', 'ú', 'û', 'ų', 'ü', 'ů', 'ű',
'ý', 'ÿ',
'ź', 'ż', 'ž',
'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р',
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'р',
'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я',
'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'
);
$remplazar = array(
'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'A', 'A',
'C', 'C', 'C', 'CE',
'D', 'D',
'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'a', 'a',
'c', 'c', 'c', 'ce',
'd', 'd',
'E', 'E', 'E', 'E', 'E', 'E',
'G',
'I', 'I', 'I', 'I', 'I',
'L', 'L', 'L',
'e', 'e', 'e', 'e', 'e', 'e',
'g',
'i', 'i', 'i', 'i', 'i',
'l', 'l', 'l',
'N', 'N', 'N',
'O', 'O', 'O', 'O', 'O', 'O', 'O',
'R', 'R',
'S', 'S', 'S',
'n', 'n', 'n',
'o', 'o', 'o', 'o', 'o', 'o',
'r', 'r',
's', 's', 's',
'T', 'T',
'U', 'U', 'U', 'U', 'U', 'U', 'U',
'Y', 'Y',
'Z', 'Z', 'Z',
't', 't',
'u', 'u', 'u', 'u', 'u', 'u', 'u',
'y', 'y',
'z', 'z', 'z',
'A', 'B', 'B', 'r', 'A', 'E', 'E', 'X', '3', 'N', 'N', 'K', 'N', 'M', 'H', 'O', 'N', 'P',
'a', 'b', 'b', 'r', 'a', 'e', 'e', 'x', '3', 'n', 'n', 'k', 'n', 'm', 'h', 'o', 'p',
'C', 'T', 'Y', 'O', 'X', 'U', 'u', 'W', 'W', 'b', 'b', 'b', 'E', 'O', 'R',
'c', 't', 'y', 'o', 'x', 'u', 'u', 'w', 'w', 'b', 'b', 'b', 'e', 'o', 'r'
);
return str_replace($buscar, $remplazar, $cadena);
}
Consejos para evitaros futuros problemas de la codificación de caracteres de vuestra base de datos MySql:
1. Los campos string y deben estar en utf8_spanish_ci y el cotejamiento de las tablas en utf_unicode_ci
2. Utilizar el siguiente meta en el
de vuestras pa´ginas web:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
3. Si utilizais php, insertar el siguiente código justo antes de vuestra query:
Un método bastante sencillo de para detectar el país (sin necesidad de utilizar php para averiguar su ip) del usuario que esta entrando en nuestra web es usando la API de wipmania por medio de jQuery. El método de consulta nos devuelve unas cuantos parámetros como son: latitud, longitud, zoom, dirección, ciudad, país, códido del país, región.
Si introduciomos en nuestro navegador directamente la url “http://api.wipmania.com/jsonp?callback=?” ya observamos los datos que nos devuelve. Ya solo hace falta utilizar JSON para recuperarlos con jQuery de la siguiente forma:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {
alert('País: ' + data.address.country);
});
</script>
Función para contar el total de lementos que tenemos en nuestrs librería multimedia de WordPress. En este caso voy a filtrar en un array solo las imágenes (jpg, gif, png) pero podeis filtrar por otros tipos de archivosn (pdf, dic, zip, etc…). Abrimos el archivo functions.php de nuestro theme y insertamos la siguiente función:
function contar_imagenes
(){
$query_imagenes = array(
'post_type' => 'attachment',
'post_mime_type' =>array(
'jpg|jpeg|jpe' => 'image/jpeg',
'gif' => 'image/gif',
'png' => 'image/png',
),
'post_status' => 'inherit',
'posts_per_page' => -1,
);
$query_img = new WP_Query
( $query_imagenes );
echo $query_img->post_count;
}
Y para usarla, como siembre, abrimos el archivo php de nuestro theme (index.php, single.php, sidebar.php, etc…) donde queremos mostrar el resultado y añadimos la línea php:
<?php contar_imagenes(); ?>