source

WordPress 단축코드를 사용하여 태그 추가

factcode 2023. 3. 5. 21:53
반응형

WordPress 단축코드를 사용하여 태그 추가

쇼트 코드를 사용한 간단한 WordPress 플러그인을 쓰고 있습니다.숏코드가 포함된 페이지에 특정 정보를 입력해 주세요.<meta>태그. 이게 가능한가요?그렇다면 우아한 방법이 있을까요?

나는 내가 더 할 수 있다는 것을 안다.<meta>태그 부착wp_head후크입니다만, 메타 태그의 컨텐츠가 플러그 인에 의해서 생성된 문자열과 일치하도록 해 주세요.모든 코드를 헤더로 이동할 수 있지만, 나중에 쇼트 코드에서 어떻게 참조해야 할지 잘 모르겠습니다.즉, 변수 선언을 할 수 있습니다.<head>필터를 사용하면 쇼트 코드를 사용하여 호출하는 클래스 메서드에 사용할 수 없습니다.

좋은 생각 있어요?

갱신:

shortcode의 핸들러 함수가 wp_head hook에 액션을 추가하는 좋은 솔루션이 제안되었습니다.

add_shortcode('fakeshortcode', 'fakeshortcode_handler');
function fakeshortcode_handler() {

    function add_meta_tags() {
        //echo stuff here that will go in the head
    }
    add_action('wp_head', 'add_meta_tags');
}

이것은 훌륭합니다만, 문제는 쇼트 코드가 해석되어 액션이 추가되기 전에 wp_head가 발생한다는 것입니다(따라서 ALONE 위의 코드에서는 헤드에 아무것도 추가되지 않습니다).그것을 실현하기 위해서, 는 이 투고에 있는 해결책을 빌렸다.기본적으로 게시물을 "앞을 내다보고" 쇼트코드가 오지 않았는지 확인하는 기능입니다.이 경우 IT부문은 다음 사항을 추가합니다.add_action('wp_head'....

편집: 변수 전달 방법에 대한 후속 질문을 삭제했습니다.새로운 질문입니다.

첫 번째 시도(이걸 사용하지 마세요... 아래 '편집' 참조:

먼저 다음과 같이 쇼트 코드를 설정해야 합니다.

add_shortcode( 'metashortcode', 'metashortcode_addshortcode' );

그런 다음 훅을 추가해야 하는 기능을 만듭니다.wp_head그런 식으로요.

function metashortcode_addshortcode() {
    add_action( 'wp_head', 'metashortcode_setmeta' );
}

그런 다음 다음 다음에서 수행할 작업을 정의합니다.wp_head:

function metashortcode_setmeta() {
    echo '<meta name="key" content="value">';
}

쇼트 코드 추가[metashortcode]는 필요에 따라 메타데이터를 추가합니다.이 코드는 사용자가 이 작업을 수행하는 방법을 이해하는 데 도움이 되도록만 제공되었습니다.그것은 완전히 테스트되지 않았다.

편집 : 이전 코드는 개념일 뿐 실행 순서 때문에 동작할 수 없습니다.다음은 예상한 결과를 얻을 수 있는 작업 예입니다.

// Function to hook to "the_posts" (just edit the two variables)
function metashortcode_mycode( $posts ) {
  $shortcode = 'metashortcode';
  $callback_function = 'metashortcode_setmeta';

  return metashortcode_shortcode_to_wphead( $posts, $shortcode, $callback_function );
}

// To execute when shortcode is found
function metashortcode_setmeta() {
    echo '<meta name="key" content="value">';
}

// look for shortcode in the content and apply expected behaviour (don't edit!)
function metashortcode_shortcode_to_wphead( $posts, $shortcode, $callback_function ) {
  if ( empty( $posts ) )
    return $posts;

  $found = false;
  foreach ( $posts as $post ) {
    if ( stripos( $post->post_content, '[' . $shortcode ) !== false ) {
      add_shortcode( $shortcode, '__return_empty_string' );
      $found = true;
      break;
    }
  }

  if ( $found )
    add_action( 'wp_head', $callback_function );

  return $posts;
}

// Instead of creating a shortcode, hook to the_posts
add_action( 'the_posts', 'metashortcode_mycode' );

맛있게 드세요!

언급URL : https://stackoverflow.com/questions/9558211/use-wordpress-shortcode-to-add-meta-tags

반응형