Добавление текстового редактора в Excerpt

Мне нужно добавить в поле excerpt редактор TinyMCE Advanced, любые идеи?

У меня есть плагин qTranslate (многоязычный), и невозможно подключить выдержку с этим плагином и редактором.

Спасибо

6 голосов | спросил Marta 12 J000000Thursday12 2012, 13:45:59

4 ответа


13

Просто замените вывод по умолчанию. Убедитесь, что вы отменили выдержку перед отправкой в ​​редактор:

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 ( '&lt;', '&gt;', '&quot;', '&amp;', '&nbsp;', '&amp;nbsp;' )
        ,   array ( '<',    '>',    '"',      '&',     ' ', ' ' )
        ,   $str
        );
    }
}

введите описание изображения здесь>> </p>

<p> Сохраните этот код в плагине или в тексте <code>---- +: = 1 =: + ----</code>. </p></body></html>

ответил fuxia 12 J000000Thursday12 2012, 21:15:26
4

Простым способом является использование плагина Богатый текстовый фрагмент

В плагине используется функция wp_editor для создания богатого текстового редактора для выписок из страницы /сообщения, поэтому будет работать только в WordPress версии 3.3 или выше.

ответил Pontus Abrahamsson 12 J000000Thursday12 2012, 13:57:24
0

вам может понадобиться использовать функцию wp_editor, чтобы получить богатый редактор, тогда вы должны удалить любые функции sanitize с помощью get_post_meta (или update_post_meta), тогда вы должны использовать htmlspecialchars_decode, чтобы получить богатый контент.

просмотрите этот принцип:

add_action( 'add_meta_boxes', 'adding_a_new_metaabox' );                
function adding_a_new_metaabox() 
    {   
        add_meta_box('html_myid_31_section', 'TITLE Hellooo', 'my_output_funct');
    }

function my_output_funct( $post ) 
    {
    //so, dont ned to use esc_attr in front of get_post_meta
    $valueeee2=  get_post_meta($_GET['post'], 'SMTH_METANAME' , true ) ;
    wp_editor( htmlspecialchars_decode($valueeee2), 'mettaabox_ID_stylee', $settings = array('textarea_name'=>'MyInputNAMEE') );
    }


function save_my_post_data( $post_id ) 
{                   
    if (!empty($_POST['MyInputNAMEE']))
        {
        $datta=htmlspecialchars($_POST['MyInputNAMEE']);
        update_post_meta($post_id, 'SMTH_METANAME', $datta );
        }
}
add_action( 'save_post', 'save_my_post_data' ); 
ответил T.Todua 29 52013vEurope/Moscow11bEurope/MoscowFri, 29 Nov 2013 04:02:42 +0400 2013, 04:02:42
0

Следуйте за решением, добавьте редактор excelpt wysiwyg сразу после заголовка сообщения.

 Excerpt

Добавьте следующий класс в проект Wordpress как excerpt.php

class Excerpt {

    public function __construct() {
        add_filter('excerpt_more', [$this, 'excerpt_more']);
        add_action('edit_form_after_title', [$this, 'excerpt']);
        add_action('admin_menu', [$this, 'remove_excerpt_metabox']);
        add_filter('wp_trim_excerpt', [$this, 'wp_trim_excerpt'], 10, 2);
    }

    /**
     * Remove metabox from post
     */
    public function remove_excerpt_metabox() {
        remove_meta_box('postexcerpt', 'post', 'normal');
    }

    /**
     * Strip tags
     *
     * @param string $text
     * @return string
     */
    public function wp_trim_excerpt($text = '') {
        return strip_tags($text, '<a><strong><em><b><i><code><ul><ol><li><blockquote><del><ins><img><pre><code><>');
    }

    /**
     * More sign...
     *
     * @return string
     */
    public function excerpt_more() {
        return '&hellip;';
    }

    /**
     * Excerpt editor after post title.
     *
     * @param $post
     */
    public function excerpt($post) {
        if ($post->post_type !== 'post') return;
        wp_editor(
            html_entity_decode($post->post_excerpt),
            'html-excerpt',
            [
                'teeny' => true,
                'quicktags' => true,
                'wpautop' => true,
                'media_buttons' => false,
                'textarea_rows' => 7,
                'textarea_name' => 'excerpt'
            ]
        );
    }
}

Затем добавьте в файл functions.php следующие строки:

require_once __DIR__ . '/excerpt.php';
$excerpt = new Excerpt();
ответил OzzyCzech 30 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 30 Sep 2015 15:32:01 +0300 2015, 15:32:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132