Testing note with no title, with more …

Testing note with no title, with more changes.


<?php # -*- coding: utf-8 -*-
/*
Plugin Name: Fix Empty Titles
Description: Replaces missing titles with the first characters from post body.
Version: 1.1
Required: 3.2
Author: Thomas Scholz
Author URI: http://toscho.de
License: GPL
Based on an idea of Konstantin Kovshenin. See
http://kovshenin.com/2011/10/wordpress-posts-without-titles-in-rss-feeds-3621/
*/
/**
* , Copyright (C) 2011 Thomas Scholz
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
! defined( 'ABSPATH' ) and exit;
add_action( 'save_post', 't5_fix_empty_title', 11, 2 );
/**
* Fills an empty post title from the first words of the post.
*
* @param int $post_id Post ID
* @param object $post Post object
* @return void
*/
function t5_fix_empty_title( $post_id, $post )
{
if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
or ! current_user_can( 'edit_post', $post_id )
or ! empty ( $post->post_title )
or empty ( $post->post_content )
or wp_is_post_revision( $post )
)
{ // Noting to do.
return;
}
// Remove all tags and replace breaks whith white space.
$no_tags = wp_strip_all_tags( $post->post_content, TRUE );
// The post content contains just markup.
if ( '' === $no_tags )
{
return;
}
$length = apply_filters( 't5_fix_empty_title_length', 20 );
$words = preg_split( "/\s+/", $no_tags, $length, PREG_SPLIT_NO_EMPTY );
array_pop( $words );
$title = implode( ' ', $words );
// Add a no break space and an ellipsis at the end.
$title = rtrim( $title, '.,!?…*' ) . ' …';
wp_update_post( array ( 'ID' => $post_id, 'post_title' => $title ) );
}

Similar Posts