我使用强制摘录代码来自动生成摘录内容,而不使用more标记或摘录编辑框,如下所示:
function mytheme_excerpt_read_more_link( $output ) {
global $post;
return $output . ' <div class="more-link">
<a href="' . get_permalink( $post->ID ) . '>Read More</a></div>';
}
add_filter( 'the_excerpt', 'mytheme_excerpt_read_more_link' );
但是,我需要添加TinyMCE函数,以便如果有人在编辑器中添加斜体(例如),<em>
将在摘录代码中拾取。
这是我自定义TinyMCE的内容:
add_filter( 'mce_buttons', 'mrw_mce_buttons_1' );
function mrw_mce_buttons_1( $buttons ) {
$buttons = array('styleselect', 'bold', 'italic',
'link', 'unlink', 'bullist', 'numlist', 'indent',
'outdent', 'pastetext', 'removeformat', 'charmap',
'undo', 'redo', 'wp_more','wp_help', );
return $buttons;
}
如何将上述过滤器添加到Post->ID?我试过这个,但它没有工作:
function my_theme_add_tinymce_styles() {
global $post;
$post_type = get_post_type( $post->ID );
$tinymce_style = 'mrw_mce_buttons_1';
add_editor_style( $tinymce_style );
}
add_action( 'pre_get_posts', 'my_theme_add_tinymce_styles' );
谢谢查尔斯。
这将把编辑器窗口中的tinyMCE设置放在摘录窗口中:
<?php
//adjust Excerpt box height
function admin_excerpt() { echo "<style>"; echo "textarea#excerpt {height:300px;}"; echo "</style>"; } add_action('admin_head', 'admin_excerpt');
/*from http://easywebdesigntutorials.com/customizing-the-excerpts-meta-box/
Code to adding the TinyMCE visual editor to an excerpt is from:
https://marcgratch.com/add-tinymce-to-excerpt/
Code 1.
To me this seems like the best code of the 3 to use. */
function lb_editor_remove_meta_box() {
global $post_type;
/**
* Check to see if the global $post_type variable exists
* and then check to see if the current post_type supports
* excerpts. If so, remove the default excerpt meta box
* provided by the WordPress core. If you would like to only
* change the excerpt meta box for certain post types replace
* $post_type with the post_type identifier.
*/
if (isset($post_type) && post_type_supports($post_type, 'excerpt')){
remove_meta_box('postexcerpt', $post_type, 'normal');
}
}
add_action('admin_menu', 'lb_editor_remove_meta_box');
function lb_editor_add_custom_meta_box() {
global $post_type;
/**
* Again, check to see if the global $post_type variable
* exists and then if the current post_type supports excerpts.
* If so, add the new custom excerpt meta box. If you would
* like to only change the excerpt meta box for certain post
* types replace $post_type with the post_type identifier.
*/
if (isset($post_type) && post_type_supports($post_type, 'excerpt')){
add_meta_box('postexcerpt', __('Excerpt'), 'lb_editor_custom_post_excerpt_meta_box', $post_type, 'normal', 'high');
}
}
add_action( 'add_meta_boxes', 'lb_editor_add_custom_meta_box' );
function lb_editor_custom_post_excerpt_meta_box( $post ) {
/**
* Adjust the settings for the new wp_editor. For all
* available settings view the wp_editor reference
* http://codex.wordpress.org/Function_Reference/wp_editor
*/
$settings = array( 'textarea_rows' => '12', 'quicktags' => true, 'tinymce' => true);
/**
* Create the new meta box editor and decode the current
* post_excerpt value so the TinyMCE editor can display
* the content as it is styled.
*/
wp_editor(html_entity_decode(stripcslashes($post->post_excerpt)), 'excerpt', $settings);
// The meta box description - adjust as necessary
// echo '<p><em>Excerpts are optional, hand-crafted, summaries of your content.</em></p>';
}
// add Text (HTML)