programing

워드프레스에서 '루트'를 작성하려면 어떻게 해야 합니까?

closeapi 2023. 3. 22. 21:14
반응형

워드프레스에서 '루트'를 작성하려면 어떻게 해야 합니까?

제정신을 차리기 위해 다음과 같은 ajax api 루트를 작성하려고 합니다.

/api/<action>

워드프레스를 통해 이 경로를 처리하고 다음 작업을 수행하도록 위임합니다.do_action워드프레스는 이 작업을 실행할 수 있는 후크를 제공합니까?어디가 좋을까요?

add_rewrite_rule을 사용해야 합니다.

예를 들어 다음과 같습니다.

add_action('init', 'theme_functionality_urls');

function theme_functionality_urls() {

  /* Order section by fb likes */
  add_rewrite_rule(
    '^tus-fotos/mas-votadas/page/(\d)?',
    'index.php?post_type=usercontent&orderby=fb_likes&paged=$matches[1]',
    'top'
  );
  add_rewrite_rule(
    '^tus-fotos/mas-votadas?',
    'index.php?post_type=usercontent&orderby=fb_likes',
    'top'
  );

}

이것으로 작성됩니다./tus-fotos/mas-votadas그리고./tus-fotos/mas-votadas/page/{number}pre_get_posts 필터에서 처리하는 커스텀 쿼리 orderby 쿼리 var를 변경합니다.

새로운 변수는 다음 명령을 사용하여 추가할 수도 있습니다.query_vars필터와 그것을 개서 규칙에 추가합니다.

add_filter('query_vars', 'custom_query_vars');
add_action('init', 'theme_functionality_urls');

function custom_query_vars($vars){
  $vars[] = 'api_action';
  return $vars;
}

function theme_functionality_urls() {

  add_rewrite_rule(
    '^api/(\w)?',
    'index.php?api_action=$matches[1]',
    'top'
  );

}

다음으로 커스텀 요구를 처리합니다.

add_action('parse_request', 'custom_requests');
function custom_requests ( $wp ) { 

  $valid_actions = array('action1', 'action2');

  if(
    !empty($wp->query_vars['api_action']) &&
    in_array($wp->query_vars['api_action'], $valid_actions) 
  ) {

    // do something here

  }

}

다음 웹 사이트를 방문하여 다시 쓰기 규칙을 수정하십시오./wp-admin/options-permalink.php 또는 간단한 프로세스가 아니기 때문에 필요한 경우에만 flash_flash_flash_flash를 호출합니다.

Wordpress json-api 플러그인을 찾고 계신 것 같습니다.이 플러그인은 제가 사용해 온 것 중 하나로 매우 쉽게 확장할 수 있습니다.행운을 빌어요.

언급URL : https://stackoverflow.com/questions/12133200/how-do-i-create-a-route-in-wordpress

반응형