Depois de termos divulgado 12 truques para páginas e posts do WordPress, hoje vamos voltar à carga com 10 novos truques, desta feita para usar no Editor de Posts e Páginas também do WordPress. A diferença entre ambos os códigos, é que no primeiro artigo os códigos interferem com o Front-End do WordPress, ou seja, a área que o leitor vê, e estes novos códigos interferem com o Back-End do WordPress, ou seja, o seu painel administrativo. Conforme já mostramos em outros Tutoriais WordPress, existem pequenos truques e dicas para podem ajudá-lo a aumentar o nível de funcionalidade do seu blog facilmente através do ficheiro functions.php, o ficheiro que rege as funcionalidades do seu WordPress. Alguns Temas WordPress já incluem algumas destas funcionalidades que vamos mencionar neste artigo, enquanto que muitos outros não incluem nenhuma delas. Se no seu caso o seu template não inclui estas funcionalidades, está na altura certa para a implementar no seu blog!

function.php do WordPress

1. PERMITIR MAIS TAGS HTML NO EDITOR

Por padrão, o editor de postagens do WordPress não permite mais tags HTML além das que fazem parte do XHTML 1.0 standard. No entanto, se você usar o código seguinte em seu WordPress, ele irá forçar o editor a aceitar mais tags HTML. Copie e cole o seguinte para dentro do ficheiro functions.php do seu template, guarde-o, e a função deverá ficar automaticamente disponível para você usar.

function fb_change_mce_options($initArray) {
	// Comma separated string od extendes tags
	// Command separated string of extended elements
	$ext = 'pre[id|name|class|style],iframe[align|longdesc|name|width|height|frameborder|scrolling|marginheight|marginwidth|src]';
	if ( isset( $initArray['extended_valid_elements'] ) ) {
	$initArray['extended_valid_elements'] .= ',' . $ext;
	} else {
		$initArray['extended_valid_elements'] = $ext;
	}

	// maybe; set tiny paramter verify_html
	//$initArray['verify_html'] = false;
	return $initArray;
}
add_filter('tiny_mce_before_init', 'fb_change_mce_options');

2. DEFINIR EDITOR PADRÃO (HTML OU VISUAL)

Muitos usuários do WordPress preferem o editor HTML ao editor Visual de postagens. No entanto, o padrão é normalmente o editor Visual. Com este código, você pode definir o editor padrão do seu WordPress para o Visual, ou para o HTML. Copie e cole o seguinte código dentro do ficheiro functions.php do seu template.

# This sets the Visual Editor as default
add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );

# This sets the HTML Editor as default
add_filter( 'wp_default_editor', create_function('', 'return "html";') );

Escolha apenas um dos códigos. O primeiro define o Editor Visual como padrão e o segundo define o Editor HTML como padrão. Escolha aquele que mais deseja.

3. DEFINIR DIFERENTES FOLHAS DE ESTILOS PARA O EDITOR

Copie e cole o seguinte código para dentro do ficheiro functions.php do seu template. Com ele você poderá definir diferentes folhas de estilos para o editor, de forma a criar artigos de diferentes estilos. Terá de adaptar o código, dependendo do tipo de posts que deseja criar, e não esqueça de mudar o nome das folhas de estilo também.

function my_editor_style() {
	global $current_screen;
	switch ($current_screen->post_type) {
		case 'post':
		add_editor_style('editor-style-post.css');
		break;

		case 'page':
		add_editor_style('editor-style-page.css');
		break;

		case 'portfolio':
		add_editor_style('editor-style-portfolio.css');
		break;
	}
}
add_action( 'admin_head', 'my_editor_style' );

4. PERMITIR O UPLOAD DE MAIS TIPOS DE FICHEIROS

Se reparar, o sistema de upload do WordPress não lhe permite fazer o upload de alguns tipos de ficheiros, como por exemplo ficheiros .tmCommand do Textmate. Se você precisar carregar esses tipos de ficheiros para o seu blog WordPress, você terá de usar o seguinte código, o qual deverá copiar e colar para dentro do ficheiro functions.php do seu template. Poderá também acrescentar novos tipos de ficheiros na linha 4 do código, separados por (|).

<?php
	function addUploadMimes($mimes) {
	$mimes = array_merge($mimes, array(
		'tmbundle|tmCommand|tmDragCommand|tmSnippet|tmLanguage|tmPreferences' => 'application/octet-stream'
	));
	return $mimes;
   }
?>
add_filter('upload_mimes', 'addUploadMimes');

5. LIGAR O EDITOR TINYMCE PARA OS EXCERTOS

No editor de postagens do WordPress, você tem uma seção para os excertos dos artigos. Não seria interessante ter disponível um editor TinyMCE nessa área para escrever mais facilmente seus textos? Copie e cole o seguinte código para dentro do ficheiro functions.php do seu template WordPress.

function tinymce_excerpt_js(){ ?>
<script type="text/javascript">
	jQuery(document).ready( tinymce_excerpt );
	function tinymce_excerpt() {
	jQuery("#excerpt").addClass("mceEditor");
	tinyMCE.execCommand("mceAddControl", false, "excerpt");
	}
</script>
<?php }
add_action( 'admin_head-post.php', 'tinymce_excerpt_js');
add_action( 'admin_head-post-new.php', 'tinymce_excerpt_js');

function tinymce_css(){ ?>
<style type='text/css'>
	#postexcerpt .inside{margin:0;padding:0;background:#fff;}
	#postexcerpt .inside p{padding:0px 0px 5px 10px;}
	#postexcerpt #excerpteditorcontainer { border-style: solid; padding: 0; }
</style>
<?php }
add_action( 'admin_head-post.php', 'tinymce_css');
add_action( 'admin_head-post-new.php', 'tinymce_css');

6. NOVOS FORMATOS DE POSTAGENS

Com o seguinte código você pode ligar diferentes formatos de postagens como por exemplo audio, imagens, video, etc., diretamente no seu editor de posts do WordPress. Copie e cole o seguinte código dentro do ficheiro functions.php do seu template.

add_theme_support( 'post-formats', array( 'aside', 'audio', 'image', 'video' ) );

7. CRIAR MENSAGENS DE ESTADOS PARA POSTAGENS

Este truque foi desenvolvido por um programador com o intuito e um cliente seu mostrar mensagens personalizadas no editor de postagens do WordPress, para que os seus autores pudessem ver mensagens do tipo rejeitadoerrofontefinal, etc. Você pode alterar as mensagens por baixos dos comentários no código, e não esqueça de mudar também os nomes das classes. Copie e cole esse código no ficheiro functions.php do seu template.

add_filter('display_post_states', 'custom_post_state');
function custom_post_state($states) {
  global $post;
  $show_custom_state = get_post_meta($post->ID, '_status');
  if ($show_custom_state) {
  	$states[] = __('<span class="custom_state ' . strtolower($show_custom_state[0]) . '">' . $show_custom_state[0] . '</span>');
  }
  return $states;
}
add_action('post_submitbox_misc_actions', 'custom_status_metabox');

function custom_status_metabox() {
    global $post;
    $custom = get_post_custom($post->ID);
    $status = $custom["_status"][0];
    $i = 0;
    /* ----------------------------------- */
    /*   Array of custom status messages            */
    /* ----------------------------------- */
    $custom_status = array('Spelling', 'Review', 'Errors', 'Source', 'Rejected', 'Final', );
    echo '<div class="misc-pub-section custom">';
    echo '<label>Custom status: </label><select name="status">';
    echo '<option class="default">Custom status</option>';
    echo '<option>-----------------</option>';
        for ($i = 0; $i < count($custom_status); $i++) {
        if ($status == $custom_status[$i]) {
            echo '<option value="' . $custom_status[$i] . '" selected="true">' . $custom_status[$i] . '</option>';
        } else { echo '<option value="' . $custom_status[$i] . '">' . $custom_status[$i] . '</option>'; }
    }

    echo '</select>';
    echo '<br /></div>';
}
add_action('save_post', 'save_status');

function save_status() {
    global $post;
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
    	return $post->ID;
    }
    update_post_meta($post->ID, "_status", $_POST["status"]);
}
add_action('admin_head', 'status_css');

function status_css() {
    echo '<style type="text/css">
    .default{<a href="http://www.hongkiat.com/blog/out/fonts" style="" target="_blank" rel="nofollow" onmouseover="self.status='http://www.hongkiat.com/blog/out/fonts';return true;" onmouseout="self.status=''">font</a>-weight:bold;}
    .custom{border-top:solid 1px #e5e5e5;}
    .custom_state{
    font-size:9px;
    color:#666;
    background:#e5e5e5;
    padding:3px 6px 3px 6px;
    -moz-border-radius:3px;
    }
    /* ----------------------------------- */
    /*   change color of messages below            */
    /* ----------------------------------- */
    .spelling{background:#4BC8EB;color:#fff;}
    .review{background:#CB4BEB;color:#fff;}
    .errors{background:#FF0000;color:#fff;}
    .source{background:#D7E01F;color:#333;}
    .rejected{background:#000000;color:#fff;}
    .final{background:#DE9414;color:#333;}
    </style>';
}

8. DEFINIR DIMENSÃO MÁXIMA DO TÍTULO

Adicionando este código PHP ao seu ficheiro functions.php você pode limitar o número máximo de caracteres do título das suas postagens. Isso é ideal para layouts que estejam personalizados com título de dimensões fixas ou para não criar títulos demasiado grandes para seus artigos!

function maxWord($title){
	global $post;
	$title = $post->post_title;
	if (str_word_count($title) >= 10 ) //set this to the maximum number of words
	wp_die( __('Error: your post title is over the maximum word count.') );
}
add_action('publish_post', 'maxWord');

9. MUDAR A FONTE DO EDITOR DE POSTAGENS

Não gosta da fonte usada pelo editor de artigos do WordPress? É possível você mudar essa fonte para tipos de letras mais elegantes como a Monaco ou a Consolas. Copie e cole o seguinte código para dentro do ficheiro functions.php do seu template.

function change_editor_font(){
	echo "<style type='text/css'>
	#editorcontainer textarea#content {
		font-family: Monaco, Consolas, \"Andale Mono\", \"Dejavu Sans Mono\", monospace;
		font-size:14px;
		color:#333;
		}
	</style>";
}
add_action("admin_print_styles", "change_editor_font");

10. DESLIGAR AUTO SAVE DE POSTAGENS

Se por alguma razão não pretende que o seu WordPress esteja constantemente salvando seus artigos, você poderá desligar a opção Auto Save do editor de postagens do WordPress também. Copie e cole o seguinte código para dentro do ficheiro functions.php do seu template:

function disableAutoSave(){
wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'disableAutoSave' );

MAIS TRUQUES PARA O SEU WORDPRESS

Está procurando mais truques para implementar no seu blog WordPress? Nós temos mais:

Até Já!