wordpressor
  • 0
Эксперт

Форматирование ?

  • 0

I have serious trouble displaying code blocks in my theme.

I want to display something like:

[[code0]]

And it works fine everywhere, but doing that inside code tag:

[[code1]]

Displays code block looking like:

[[code2]]

And setting code’s CSS to:

[[code3]]

Produces confusing:

[[code4]]

Almost perfect, but where these come from?

Additionally I’m disabling WP AutoP and it works, but not within code tags:

functions.php

[[code5]]

Any ideas?

Share
  1. code br { display: none } немного помогает, но это очень примитивный способ решения этой проблемы.

    • 0
  2. Вам либо нужно добавить такой код через HTML-редактор (и не переключаться обратно в визуальный редактор), либо вам нужно будет передать пользовательскую конфигурацию в визуальный редактор.

    У меня похожие потребности, и вот что я использую (в functions.php ):

    // http://tinymce.moxiecode.com/wiki.php/Configuration
    function cbnet_tinymce_config( $init ) {
    
    // Change code cleanup/content filtering config
    
        // Don't remove line breaks
        $init['remove_linebreaks'] = false; 
        // Convert newline characters to BR tags
        //$init['convert_newlines_to_brs'] = true; 
        // Preserve tab/space whitespace
        $init['preformatted'] = true; 
        // Add to list of formats to remove with Remove Format button
        $init['removeformat_selector'] = 'b,strong,em,i,span,ins,del,h1,h2,h3,h4,h5,h6,pre';
        // Do not remove redundant BR tags
        $init['remove_redundant_brs'] = false;
    
    // Add to list of valid HTML elements (so they don't get stripped)
    
        // IFRAME
        $valid_iframe = 'iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]';
        // PRE
        $valid_pre = 'pre[id|name|class|style]';
        // DIV
        $valid_div = 'div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title]';
    
        // Concatenate 
        $cbnet_valid_elements = $valid_iframe . ',' . $valid_pre . ',' . $valid_div;
    
        // Add to extended_valid_elements if it alreay exists
        if ( isset( $init['extended_valid_elements'] ) ) {
            $init['extended_valid_elements'] .= ',' . $cbnet_valid_elements;
        } else {
            $init['extended_valid_elements'] = $cbnet_valid_elements;
        }
    
    // Pass $init back to WordPress
        return $init;
    }
    add_filter('tiny_mce_before_init', 'cbnet_tinymce_config');
    

    В частности, вы захотите установить remove_linebreaks на false, установить preformatted на true и, возможно, добавить <pre> тег в белый список.

    • 0

Оставить ответ

You must login to add an answer.