Wordpress - Visual Composer

Aus Wikizone
Wechseln zu: Navigation, Suche

Ein verbesserter Editor. In neuen Versionen auch für Frontend. Kostenpflichtig oft bei Themes mit dabei.

Troubleshooting[Bearbeiten]

Visual Composer funktioniert nach Update von Wordpress nicht mehr[Bearbeiten]

So ca. bei 4.5 bis 4.7 in der Konsole wird der Fehler:

$template.get is not a function

angezeigt

http://heycodetech.com/uncaught-typeerror-template-get-is-not-a-function/

Solution 1 :Change the function: html2element

For resolving this issues, we need to change the function : html2element : in files. > composer-view.js, File path: /wp-content/plugins/js_composer/assets/js/backend/composer-view.js:

Your code

        html2element:function (html) {
        var attributes = {},
            $template;
        if (_.isString(html)) {
            this.template = _.template(html);
            $template = $(this.template(this.model.toJSON()).trim());
        } else {
            this.template = html;
            $template = html;
        }
        _.each($template.get(0).attributes, function (attr) {
            attributes[attr.name] = attr.value;
        });
        this.$el.attr(attributes).html($template.html());
        this.setContent();
        this.renderContent();
    },

change this code to

html2element: function(html) {
        var $template, attributes = {},
            template = html;
        $template = $(template(this.model.toJSON()).trim()), _.each($template.get(0).attributes, function(attr) {
            attributes[attr.name] = attr.value
        }), this.$el.attr(attributes).html($template.html()), this.setContent(), this.renderContent()
    },

Solution 2 :Change the function: render

Sometime,we need to change this function also.Here is the path of this function file. Hinweis Stephan: bei mir kam der Fehler

Syntax error, unrecognized expression: .vc-teaser-btn-Vorlage:Name

> composer-view.js, File path:

/wp-content/plugins/js_composer/assets/js/backend/composer-view.js:

Original function :

render: function () {
	var $shortcode_template_el = $( '#vc_shortcode-template-' + this.model.get( 'shortcode' ) );
	if ( $shortcode_template_el.is( 'script' ) ) {
		this.html2element( _.template( $shortcode_template_el.html(),
			this.model.toJSON(),
			vc.templateOptions.default ) );
	} else {
		var params = this.model.get( 'params' );
		$.ajax( {
			type: 'POST',
			url: window.ajaxurl,
			data: {
				action: 'wpb_get_element_backend_html',
				data_element: this.model.get( 'shortcode' ),
				data_width: _.isUndefined( params.width ) ? '1/1' : params.width
			},
			dataType: 'html',
			context: this
		} ).done( function ( html ) {
			this.html2element( html );
		} );
	}
	this.model.view = this;
	this.$controls_buttons = this.$el.find( '.vc_controls > :first' );
	return this;
	},

Change this function :

render: function () {
	var $shortcode_template_el = $( '#vc_shortcode-template-' + this.model.get( 'shortcode' ) );
	if ( $shortcode_template_el.is( 'script' ) ) {
    var newHtmlCode =  _.template( $shortcode_template_el.html(),
    if(!_.isString(newHtmlCode)){
                    newHtmlCode = $shortcode_template_el.html();
    }
    this.html2element( newHtmlCode );
	} else {
        var params = this.model.get( 'params' );
        $.ajax( {
            type: 'POST',
            url: window.ajaxurl,
            data: {
                action: 'wpb_get_element_backend_html',
                data_element: this.model.get( 'shortcode' ),
                data_width: _.isUndefined( params.width ) ? '1/1' : params.width,
                _vcnonce: window.vcAdminNonce
            },
            dataType: 'html',
            context: this
        } ).done( function ( html ) {
                        this.html2element( html );
        } );
	}
	this.model.view = this;
	this.$controls_buttons = this.$el.find( '.vc_controls > :first' );
	return this;
	},

Note :

1: When changed then : Delete the cache and cookies : and then check.

2: If you are using the plugin : js_composer: or :WPBakery Visual Composer “: or :any paid plugin visual composer: then try to find the file : composer-view.js, File path: /wp-content/plugins/js_composer/assets/js/backend/composer-view.js: and changed the function which is discussed above.

Hope this works for you!



More Problems[Bearbeiten]

Bei mir gab es in der composer-teaser.js ( * composer-teaser.js v1.1) noch ein Problem. Quelle: https://gist.github.com/stiucsib86/add88d94ec5dcfee1a116c5b82c80f48

Fehler in der Konsole:

unrecognized expression:  .vc-teaser-btn-Vorlage:Name

Diese Funktion austauschen...

Visual Composer fixes ".vc_teaser-btn-Vorlage:Name" error fixes
composer-teaser.js
parse: function() {
    var value = this.$data_field.val(),
        data = !_.isEmpty(value) ? $.parseJSON(value) : [];
    if(_.isEmpty(value)) {
      data = [{link: "post", name: "title"}, {name: 'image'}, {name: 'text'}];
      this.$data_field.val(JSON.stringify(data));
    }
    _.each(data, function(block_data){
        if(_.isString(block_data.name) && block_data.name.indexOf('{{') < 0) {
            var $control = $('.vc_teaser-btn-' + block_data.name, this.$toolbar).prop('checked', true);
            if(block_data.name == 'image' && !_.isUndefined(block_data.image)) {
                if(block_data.image !== 'featured') {
                    this.custom_image_attributes = {id: block_data.image};
                    block_data.mode = 'custom';
                } else {
                    block_data.mode = 'featured';
                }
            } else if(block_data.name == 'text') {
                if(block_data.mode === 'custom') {
                  this.custom_text = block_data.text;
                }
            }
            this.createControl(block_data);
            this.$spinner.hide();

        }
    }, this);
    this.$spinner.hide();
}