
Voldemorth
No recomendado
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola!
Actualizando un sitio en el que trabaje hace ya unos años me tope con esta funcionalidad que en su momento me fue muy util, se trata de un contador de views (en realidad de cada que alguien que no tenga derechos de editar contenido abra un post). En concreto esta función se puede utilizar como un plugin o simplemente agregar a su archivo de funciones. Trabaja usando acciones de wordpress or lo que no ocupa que hagan mas ediciones en su theme.
El resultado que obtendrán es un metadato en su db que contara cada vez que alguien entra a un post (o actualiza la pagina), este numero se muestra en el administrador en una columna de a tabla de entradas y solo cuenta las vistas de usuarios que no son administradores o editores para que sea mas real. Lo pueden ocupar como un registro interno de popularidad, o el uso que generalmente le doy es para generar listas de entradas mas populares, incluso si lo combinan con un filtro de etiquetas pueden obtener entradas mas populares relacionadas con el post que están viendo pero eso se los dejo para que lo desarrollen ustedes.
Como pueden ver cuenta con unas pocas funciones la funcion "getPostViews" obtiene el total de views al momento, setPostViews suma un nuevo view siempre y cuando se trate de un usuario que no tenga derechos de edición (ni administradores ni editores) las otras dos funciones solo generan y actualizan la información en el administrador.
Para mostrar las views pueden utilizar la función getPostViews($postID) donde $postID es el id del post que quiern mostrar los views, esto les retornara un valro como "xx Views" (lo pueden modificar editando el retorno de la misma función) En el caso de usarlos para ordenar querys pueden usar la meta "views" en sus atributos.
Por ultimo la función setPostViews se aplica al cargar el footer de esta forma nos aseguramos que el usuario logro ver el contenido completo y no experimento problemas de carga o simplemente entro y se fue.
Actualizando un sitio en el que trabaje hace ya unos años me tope con esta funcionalidad que en su momento me fue muy util, se trata de un contador de views (en realidad de cada que alguien que no tenga derechos de editar contenido abra un post). En concreto esta función se puede utilizar como un plugin o simplemente agregar a su archivo de funciones. Trabaja usando acciones de wordpress or lo que no ocupa que hagan mas ediciones en su theme.
El resultado que obtendrán es un metadato en su db que contara cada vez que alguien entra a un post (o actualiza la pagina), este numero se muestra en el administrador en una columna de a tabla de entradas y solo cuenta las vistas de usuarios que no son administradores o editores para que sea mas real. Lo pueden ocupar como un registro interno de popularidad, o el uso que generalmente le doy es para generar listas de entradas mas populares, incluso si lo combinan con un filtro de etiquetas pueden obtener entradas mas populares relacionadas con el post que están viendo pero eso se los dejo para que lo desarrollen ustedes.
Insertar CODE, HTML o PHP:
function getPostViews($postID){
$count_key = 'views';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 View";
}
return $count.' Views';
}
function setPostViews($postID) {
if( !current_user_can('edit_others_pages') ) {
if ( ! add_post_meta( get_the_ID(), 'views', '1', true ) ) {
$view = get_post_meta( get_the_ID(), 'views', true );
$views = $view + 1;
update_post_meta( get_the_ID(), 'views', $views, $view );
}
}
}
add_action( 'wp_footer', 'setPostViews' );
// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
// Add to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
$defaults['views'] = __('Views');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'views'){
echo getPostViews(get_the_ID());
}
}
Como pueden ver cuenta con unas pocas funciones la funcion "getPostViews" obtiene el total de views al momento, setPostViews suma un nuevo view siempre y cuando se trate de un usuario que no tenga derechos de edición (ni administradores ni editores) las otras dos funciones solo generan y actualizan la información en el administrador.
Para mostrar las views pueden utilizar la función getPostViews($postID) donde $postID es el id del post que quiern mostrar los views, esto les retornara un valro como "xx Views" (lo pueden modificar editando el retorno de la misma función) En el caso de usarlos para ordenar querys pueden usar la meta "views" en sus atributos.
Por ultimo la función setPostViews se aplica al cargar el footer de esta forma nos aseguramos que el usuario logro ver el contenido completo y no experimento problemas de carga o simplemente entro y se fue.