콘텐츠로 건너뛰기 사이드바로 건너뛰기

Waiting for author

Topic Tags: Bug, Compatibility

Overview of the issue

When using Visual Composer Pro with WPML, you might experience the following fatal error when accessing the Translation Management page:

PHP Fatal error: Uncaught TypeError: Argument 2 passed to WPML\Core\SharedKernel\Component\Post\Application\Query\Dto\PostTypeDto::__construct() must be of the type string, null given, called in ../public_html/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Core/SharedKernel/Component/Post/Application/Query/Dto/PostTypeDto.php:26

Workaround

Please make sure you have a full backup of your site before proceeding.

Workaround 1 (Recommended)

Add the following code to your theme’s functions.php file:

add_filter( 'wpml_post_type_dto_filter', function ( $postTypeObject ) {
	if ( is_object( $postTypeObject ) ) {
		$default = $postTypeObject->name ?? '';
		if ( ! isset( $postTypeObject->labels ) || ! is_object( $postTypeObject->labels ) ) {
			$postTypeObject->labels = new stdClass();
		}
		if ( empty( $postTypeObject->name ) ) {
			$postTypeObject->name = $default;
		}

		if ( empty( $postTypeObject->labels->name ) ) {
			$postTypeObject->labels->name = $default;
		}

		if ( empty( $postTypeObject->labels->singular_name ) ) {
			$postTypeObject->labels->singular_name = $default;
		}
	}
	return $postTypeObject;
} );
  

Workaround 2 (Alternative)

This workaround involves directly modifying plugin code, which can be lost on updates.

  • Open: /wp-content/uploads/visualcomposer-assets/addons/themeEditor/themeEditor/PostTypeController.php
  • Look for:
    protected function registerPostType()
        {
            register_post_type(  
    
  • And replace it with:
    protected function registerPostType()
         {
    	if (!isset($this->postNamePlural)){
    		$this->postNamePlural = $this->postNameSlug;
         }
       register_post_type(
      

답글 남기기

주제에 충실하고 다른 사람들을 존중해 주세요. 이 게시물과 관련 없는 문제에 대해 도움이 필요하다면, 지원 포럼을 이용하여 채팅을 시작하거나 티켓을 제출하세요.

다음 태그를 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>