kotwice WP

Wpięcie, 'zakotwiczenie’ funkcji wewnątrz koto WP co pozwala na uruchomienie ich w określonym miejscu i czasie lub na konkretnej treści.

  1. akcje – określone miejsce w procesie uruchamiania WP, konkretne zdarzenie – Action Reference
  2. filtry – modyfikacja treści przed wyświetleniem na ekranie lub zapisem w bazie danych – Filter Reference

 

AKCJE

  •  add_action(’shutdown’); – moment zamykania wp
  • add_action(’wp_head’,’myscrpts’); – generowanie nagłówka
  • add_action(’wp_footer’,’myscrpts’); – generowanie stopki

 

FILTRY

  • add_filter(’the_content’,’my_function’); – wyświetlanie określonej treści po pobraniu contentu

 

Plugin API – Function Reference

 

Własne akcje

poprzez dodanie w kodzie wykonywanej czynności funkcji do_action($tag,  $arg = ”);

  • $tag – [string]* – własna nazwa akcji do wywołania
  • $arg – [mixed] – opcjonalne, dodatkowe parametry przekazywane do funkcji
 function ws_action_add_footer_box(){ ?>
 <div id="footer-box">
 <?php do_action('ws_footer_box');?>
 </div>
 <?php } 

 add_action('wp_footer', 'ws_action_add_footer_box'); 

 //dynamiczne dodawanie divow 
 function ws_actions_add_box(){ ?>
 <div>my new div</div>
 <?php }

 //definiowanie akcji wykonywanej w trakcie generowania własnego footera
 add_action('ws_footer_box', 'ws_actions_add_box');

Priorytety

dodanie 3 parametru do funkcji add_action(’ws_footer_bar’, 'ws_actions_add_box’, 9); pozwala na ustalenie kolejności wykonywanych akcji.

wartość 10 jest defaultowa, poniżej 10 akcje wykonywane jako wcześniejsze, powyżej 10 – akcje wykonywane później.

 

 

Dodanie własnych styli

  // Register style sheet
  add_action( 'wp_enqueue_scripts', 'register_plugin_styles');

  // add style sheet
  function register_plugin_styles() {
  	wp_register_style( 'my-plugin_styles', plugins_url( 'my-plugin/css/styles.css'));
  	wp_enqueue_style( 'my-plugin_styles');
  }

PLUGGABLE FUNCTIONS

funkcje odpowiedzialne za różne działania (logowanie, wysyłanie maila) – pozwalają nadpisać defaultowe funkcje własnymi (logowanie przez fb, G+, zmiana klienta poczty)