source

Grid Builder Visual Composer에서 변수의 게시 ID 가져오기

lovecheck 2023. 2. 17. 21:37
반응형

Grid Builder Visual Composer에서 변수의 게시 ID 가져오기

커스텀 그리드 빌더 내에 커스텀 필드를 가져오려고 합니다.몇 가지 분류법을 추가했으며 표시할 사용자 지정 데이터를 추가하려고 합니다.당신의 기사 https://kb.wpbakery.com/docs/developers-how-tos/adding-custom-shortcode-to-grid-builder/을 읽었습니다.이 기사를 실장할 때 현재 투고 ID를 취득하려고 하면 문제가 발생합니다.코드는 다음과 같습니다.

add_shortcode( 'vc_post_id', 'vc_post_id_render' );
function vc_post_id_render() {
   return '<h2>{{ post_data:ID }}</h2>'; // usage of template variable post_data with argument "ID" 
}

문제는 {{post_data:ID }}을(를) 변수에 저장하여 나중에 게시물을 가져와 사용할 수 없습니다.

$post_id = '{{ post_data:ID }}';
$post = get_post($post_id);

실패할 것이기 때문에커스텀 데이터를 그리드에 표시할 수 있도록 현재의 포스트 ID를 변수로 취득하는 방법을 가르쳐 주시겠습니까?

정말 감사합니다.

좋아요, 제 생각은 이렇습니다.제 시나리오에서는 가격이라는 커스텀 필드가 있습니다.그래서 가격을 보여줄 수 있었다.

{{ post_data:price }}

이거요. 그런데 변수에 할당하려다 실패했어요.변수를 var_dump하면 매번 (21)자가 표시됩니다.그래서 눈에 보이지 않는 캐릭터들이 있을 것 같아서

echo bin2hex($price)

결과는 7b7b20706f73745f646174613a70726965207d7d입니다.

ASCII에서 텍스트로 변환한 결과, 이렇게 되었습니다.

{{ post_data:price }}

그러다 깨달았어요.아, 바보같다.이것들은 템플릿태그입니다.똑똑하거나 각진 느낌으로.페이지가 로드되면 값을 주입했습니다.따라서 PHP는 모든 것이 클라이언트 측에서 이루어지기 때문에 가치를 얻을 기회가 없습니다.

vc_gitem_syslog_syslog_를 작성해야 합니다.YOUR_Attribute는 다음과 같이 ID를 취득할 수 있습니다.

add_filter( 'vc_gitem_template_attribute_producer_logo', 'vc_gitem_template_attribute_producer_logo', 10, 2 );
function vc_gitem_template_attribute_producer_logo( $value, $data ) {

  extract( array_merge( array(
   'post' => null,
   'data' => '',
  ), $data ) );

  $termini = get_the_terms( $post->ID, 'producer' );
  $logo = get_field('prlogo', $termini[0]);
  $image = '<img class="img-prod" src="' . $logo . '">';

  return $image;
} 

및 렌더링

add_shortcode( 'producer_logo', 'vc_producer_logo_render' );
function vc_producer_logo_render($atts, $content, $tag) {
    return '{{producer_logo}}';
}

언급URL : https://stackoverflow.com/questions/43318982/get-post-id-in-variable-in-grid-builder-visual-composer

반응형