Skip Navigation

[Resuelto] Prevent Duplicate Titles in Pending and Published

This support ticket is created hace 2 años, 9 meses. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

Hoy no hay técnicos de soporte disponibles en el foro Juego de herramientas. Siéntase libre de enviar sus tiques y les daremos trámite tan pronto como estemos disponibles en línea. Gracias por su comprensión.

Este tema contiene 1 respuesta, tiene 1 mensaje.

Última actualización por duongN-3 hace 2 años, 9 meses.

Autor
Mensajes
#2302847

Tell us what you are trying to do?
Prevent titles in CRED post forms from being added if published or pending based on title.
The code was working, but recently I've noticed that movie titles are not working as expected. Recently I added a title "xxxHOLiC" and this was not in the list of published or pending, but the error keeps showing up. As a result I have to rename the title and then it'll save. Then I have to go back and edit and save again.

Is there any documentation that you are following?
Waqar helped me previously in this thread: https://toolset.com/forums/topic/prevent-duplicate-post-titles-from-being-created/page/2/

Is there a similar example that we can see?
Code used:
/* Toolset: Validate CRED Forms for Dupe Titles */
add_filter('cred_form_validate','func_validate_title',10,2);
function func_validate_title($error_fields, $form_data){

list($fields,$errors)=$error_fields;

$forms_array = array( 33531, 33564, 33555, 33560, 33535 );

if (in_array($form_data['id'], $forms_array)) {

// get the title from the form
$title = $_POST['post_title'];

// query to get the posts to compare
$args = array( "post_type" => array('drama', 'movie', 'special', 'person', 'fansubber'), "posts_per_page" => -1, "post_status" => array('publish', 'pending') );
$query = get_posts( $args );

if (count($query) > 0){

//set error message for the title field if a post of the same title exists
foreach ($query as $post) {
if (strtolower($post->post_title) == strtolower($title)) {
$errors['post_title']='This title already exists!';
break;
}
}
}
}

//return result
return array($fields,$errors);
}
What is the link to your site?
enlace oculto (this is only available for registered users)

#2302859

My issue is resolved now. Thank you!