Sauter la navigation

[Résolu] Prevent Duplicate Titles in Pending and Published

This support ticket is created Il y a 2 années et 11 mois. 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.

Ce sujet contient 1 réponse, a 1 voix.

Dernière mise à jour par duongN-3 Il y a 2 années et 11 mois.

Auteur
Publications
#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?
lien caché (this is only available for registered users)

#2302859

My issue is resolved now. Thank you!