epsilo99
1
Xi
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
function limpiar_variable_completa($tags)
{
$tags = strip_tags($tags);
$tags = stripslashes($tags);
$tags = htmlspecialchars($tags);
return $tags;
}
//NECESITAS TENER INSTALADO AKIMEST PARA QUE ESTO FUNCIONE, esto es para evitar que los SPAMMERS automaticos nos llenen de basura de Viagra y Compañia
function es_spam($msg)
{
if(function_exists('akismet_http_post') && get_option('wordpress_api_key') )
{
global $akismet_api_host, $akismet_api_port;
$c['user_ip'] = preg_replace( '/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR'] );
$c['blog'] = get_option('home');
$c['comment_content'] = $msg;
$ignore = array( 'HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW' );
foreach ( $_SERVER as $key => $value )
{
if ( !in_array( $key, $ignore ) && is_string($value) )
$c["$key"] = $value;
else
$c["$key"] = '';
}
$query_string = '';
foreach ( $c as $key => $data )
{
if( is_string($data) )
$query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&';
}
$response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port);
if ( 'true' == $response[1] )
return 1;
else
return 0;
}
}
function isEmptyString($data)
{
return (trim($data) === "" or $data === null);
}
function post_new_question($question_title, $question_content, $ID_Pregunton, $ID_Categoria)
{
global $wpdb;
$question_title_stripped = limpiar_variable_completa($question_title);
$question_content_stripped = limpiar_variable_completa($question_content);
if( es_spam($question_title_stripped)==1 || es_spam($question_content_stripped)==1)
return new WP_Error('title_spam', 'Eres un Spammer');
$question_title_stripped = ucfirst(strtolower($question_title_stripped));
$question_content_stripped = ucfirst(strtolower($question_content_stripped));
//Mensajes de ERROR Para que el HOYGAN sepa que lo que hace esta mal xD
if (isEmptyString($question_title_stripped)) return new WP_Error('no_title_entered', 'Escribe el Titulo de tu Pregunta');
if(strlen($question_title_stripped)<10) return new WP_Error('title_corto', 'El Titulo debe tener al menos 10 caracteres');
if (isEmptyString($question_content_stripped)) return new WP_Error('no_content', 'Detalla tu Pregunta para que así puedas conseguir mejores respuestas');
if (strlen($question_content_stripped)<50) return new WP_Error('content_corto', 'Mientras más detalles tenga tu pregunta conseguirás mejores respuestas');
if (strcasecmp($question_title_stripped, $question_content_stripped) == 0) return new WP_Error('iguales', 'El titulo y la descripción deben ser diferentes');
$question_author = $ID_Pregunton;
$post = array(
'ID' => '',
'post_author' => $question_author, //Como los usuarios no se registran colocamos un usuario X para que todas las preguntas sean de el, en mi caso se llama Pregunton xD
'post_content' => $question_content_stripped, //Contenido de la pregunta
'post_title' => $question_title_stripped, //Titulo de la pregunta
'post_category' => $ID_Categoria, //Categoria donde quieres guardar las preguntas
'post_status' => 'pending' //Si quieres revisar antes de publicarla para evitar preguntas estúpidas y groserias
);
// Insert the Question into the DB
$question_id = wp_insert_post($post);
add_post_meta($question_id, '_aioseop_description', substr($question_content_stripped,0,160));//Un poco de SEO si usas ALL IN ONE SEO PACK esto le coloca la parte de la Descripcion en los campos del Plugin
add_post_meta($question_id, '_aioseop_title', $question_title_stripped);//Un poco de SEO si usas ALL IN ONE SEO PACK esto le coloca la parte del Title en los campos del Plugin
return "Tu pregunta sera revisada por nuestro Administrador - Gracias por Preguntar";
}
function display_message( $message = false )
{
if( is_wp_error( $message ) )
{
echo '<div class="errorMessage"><p>' . $m->get_error_message() . '</p></div>';
}
elseif ($message != '')
{
echo '<div class="successMessage"><p>' . $message . '</p></div>';
}
}
<?php
$question_title = limpiar_variable_completa($_POST['question_title']);
$question_content = limpiar_variable_completa($_POST['question_content']);
$ID_Usuario = 100;
$Categorias_preguntas = array(5000);
if(isset($_POST['boton1']))
$message = post_new_question($question_title, $question_content,$ID_Usuario,$Categorias_preguntas);
?>
<?php display_message($message); ?>
<span class="seotitle">Déjanos tu Pregunta</span>
<form action = "" id="preguntas" method="post">
<p>
<label>Titulo de tu Pregunta</label>
<input type="text" value="<?php echo $question_title ?>" name="question_title" size="30" />
</p>
<p>
<label>Describe tu Pregunta</label>
<textarea rows="15" cols="38" name="question_content" id="question_content"><?php echo $question_content ?></textarea>
</p>
<p>
<input type="submit" class="submit" name="boton1" id="session_submit" value="Enviar"/>
</p>
</form>
Excelente aporte SoloNegocios, me supongo que es el que usas en los sitios donde has comentado antes que tus usuarios te generan contenido gratis, excelente estrategia !
Gracias por las respuestas, pero me gustaría algún sistema que permita generar contenido con HTML y que pueda contener enlaces.
Si alguno tiene otra opción se agradece.
Mejor contrata a un programador..
Oye [MENTION=59]SoloNegocios[/MENTION], tengo una pequeña duda. En el segundo código PHP que mencionas (el que se pega al comienzo de Single.php) hay dos cosillas: "$ID_Usuario" y "$Categorias_preguntas" ¿Eso debe dejarse así o hay que cambiarlo?
Muchas gracias desde ya, y gracias también por compartir esto con nosotros 🙂
Podéis poner algún ejemplo de una web donde esté implementado esto?
Esos 2 hay que cambiarlos por tus valores, yo recomiendo crear un nuevo usuario y una nueva categoría solo para las preguntas, cuando lo hagas en "$ID_Usuario=100" colocas el ID de tu nuevo usuario "$Categorias_preguntas = array(5000);" colocas el ID de la categoría en lugar del 5000.
Esto con el fin de tener todo ordenado y si quieres puedes hacer que las preguntas no salgan en el Index de tu Blog como yo hago y de paso le puedes colocar un nuevo estilo a la categoría de las preguntas para que se vea mas elegante, un ejemplo es el que yo hago "http://www.ciberwolf.com/category/preguntas" la categoría preguntas tiene su propio estilo y esas preguntas nunca salen en el Index así no pierde seriedad mi sitio xD
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?