Pobieranie wszystkich utworzonych menu
function get_all_wordpress_menus(){
return get_terms( 'nav_menu', array( 'hide_empty' => true ) );
}
sprawdzanie, czy strona ma dzieci
function has_children($_id, $_post_type) {
$children = get_posts( array( 'post_parent' => $_id, 'post_type' => $_post_type ) );
if( count( $children ) == 0 ) {
return false;
} else {
return true;
}
}
szukanie najwyższego elementu nadrzędnego (najwyższego parenta)
function rootParent($post) {
if ($post->post_parent) {
$ancestors=get_post_ancestors($post->ID);
$root=count($ancestors)-1;
$parent = $ancestors[$root];
} else {
$parent = $post->ID;
}
return $parent;
}
Pobranie rozszerzenia ze ścieżki
function getExtension($path) {
return substr(strrchr($path, "."), 0);
}
Pobranie ID obrazka z jego adresu url
function get_image_id($image_url) {
global $wpdb;
$attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url ));
return $attachment[0];
}
Dodawanie zadania do crona wp-cron
https://wordpress.edu.pl/wp-cron-poradzic-zadaniami-wordpressa/
Ograniczanie wyboru parenta parent select (jeszcze nie sprawdziłem)
https://stackoverflow.com/questions/40866430/custom-taxonomy-limit-parent-dropdown-depth
Wsparcie SVG
function cc_mime_types($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');
Oprócz tego każdy svg musi mieć na początku <?xml version=”1.0″ encoding=”UTF-8″?
Wyświetlanie svg jako jego zawartość
function getSvgContent($file) {
$svgContent = file_get_contents($file);
return $svgContent;
}
Ukrywanie zakładek w admin menu
add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
global $user_ID;
if ( current_user_can( 'editor' ) && !current_user_can( 'administrator' ) ) {
remove_menu_page( 'edit-comments.php' );
remove_menu_page( 'themes.php' );
remove_menu_page( 'plugins.php' );
remove_menu_page( 'tools.php' );
remove_menu_page( 'options-general.php' );
remove_menu_page( 'edit.php?post_type=acf' );
remove_menu_page( 'wpseo_dashboard' );
remove_menu_page( 'loco' );
remove_menu_page( 'metaslider' );
}
}
Sprawdzanie, jak nazywa się zakładka w menu, żeby można ją było ukryć
add_action( 'admin_init', 'wpse_136058_debug_admin_menu' );
function wpse_136058_debug_admin_menu() {
echo print_r( $GLOBALS[ 'menu' ], TRUE);
}
Możesz to echo zamknąć jeszcze w <pre> dla większej czytelności. W tablicy będzie to trzeci element (z indeksem 2)