問題描述
我需要新增到 TinyMCE 高階編輯器的摘錄欄位,任何想法?
我有 qTranslate 外掛 (多語言),這是不可能連線 teh 摘錄與這個外掛和編輯器。
謝謝
最佳解決方案
只需更換預設輸出即可。在將其傳送給編輯器之前,請先確認您摘錄摘錄:
add_action( 'add_meta_boxes', array ( 'T5_Richtext_Excerpt', 'switch_boxes' ) );
/**
* Replaces the default excerpt editor with TinyMCE.
*/
class T5_Richtext_Excerpt
{
/**
* Replaces the meta boxes.
*
* @return void
*/
public static function switch_boxes()
{
if ( ! post_type_supports( $GLOBALS['post']->post_type, 'excerpt' ) )
{
return;
}
remove_meta_box(
'postexcerpt' // ID
, '' // Screen, empty to support all post types
, 'normal' // Context
);
add_meta_box(
'postexcerpt2' // Reusing just 'postexcerpt' doesn't work.
, __( 'Excerpt' ) // Title
, array ( __CLASS__, 'show' ) // Display function
, null // Screen, we use all screens with meta boxes.
, 'normal' // Context
, 'core' // Priority
);
}
/**
* Output for the meta box.
*
* @param object $post
* @return void
*/
public static function show( $post )
{
?>
<label class="screen-reader-text" for="excerpt"><?php
_e( 'Excerpt' )
?></label>
<?php
// We use the default name, 'excerpt', so we don』t have to care about
// saving, other filters etc.
wp_editor(
self::unescape( $post->post_excerpt ),
'excerpt',
array (
'textarea_rows' => 15
, 'media_buttons' => FALSE
, 'teeny' => TRUE
, 'tinymce' => TRUE
)
);
}
/**
* The excerpt is escaped usually. This breaks the HTML editor.
*
* @param string $str
* @return string
*/
public static function unescape( $str )
{
return str_replace(
array ( '<', '>', '"', '&', ' ', '&nbsp;' )
, array ( '<', '>', '"', '&', ' ', ' ' )
, $str
);
}
}
將此程式碼儲存在外掛或主題的 functions.php 中。
次佳解決方案
一個簡單的方法是使用外掛 Rich Text Excerpt
外掛使用 wp_editor 函式生成一個豐富的文字編輯器,用於頁面/文章摘錄,因此只能在 WordPress 3.3 或更高版本中使用。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。
