Wpisy

W jednym z właśnie realizowanych projektów namieszałem ze stworzonymi rolami i ustawieniami dostępu do elementów panelu administracyjnego. Wszystko dla czystości i przejrzystości panelu administracyjnego dla administratorów projektu.

Użyłem wielu wtyczek, aby ustawić te najbardziej odpowiednie ustawienia:

  • Advanced Access Manager
  • Hide Admin Panels
  • Menu by User Role for WordPress
  • Role Manager
  • Role Scoper

Wszystkie coś dodały do bazy, pozmieniały ustawienia – generalnie wyszło tak, że z poziomu admina nie miałem dostępu do niektórych wtyczek, a zamiana ustawień dostępów powodowała niemały „zamęt grubymi nićmi szyty”.

Postanowiłem zatem całkowicie zresetować stworzone ustawienia i role, które w/w wtyczki raczyły mi wprowadzić w bazie.

Dlatego też stworzyłem nowego użytkownika, który posiadał maksymalnie szerokie dostępy, które udało mi się uzyskać z poziomu aktualnego administratora – im więcej, tym lepiej.

Najlepiej, gdyby nowo stworzony użytkownik posiadał tą samą rolę, co admin + max ustawienia dostępu (privillages).

Tutaj warto wspomnieć, aby wykonać kopię zapasową bazy danych ;) Nie zapomnijcie, o tym, bo później – jeśli cokolwiek namieszacie – może być naprawdę gorąco!

 

jak-wykonac-backup-bazy-danych-wordpressJak wykonać backup bazy danych w WordPress?

Jeśli nie wiecie jak to zrobić – najlepiej zalogować się do Waszego konta phpMyadmin (dostępu poszukajcie w swoim cpanelu lub spytajcie administratora serwera hostingowego), wyszukać bazę danych (jeśli nie wiecie która to, sprawdźcie w pliku wp-config.php w folderze głównym poprzez ftp Waszego serwera. Następnie z poziomu phpMyadmina klikamy napis export i Wykonaj.

Zapisujemy wyeksportowany plik na dysku w bezpiecznym miejscu.

 

Teraz przechodzimy do części zasadniczej.

wordpress-reset-privillages-access-rolesSzukamy w lewym menu tabeli o nazwie wp_options (w moim przypadku nazwa jest inna niż wp_, więc została ona wycięta). Następnie szukamy rekordu o nazwie wp_user_roles. Tutaj najlepiej wylistować wszystkie rekordy (w nagłówku standardowo jest ich 30).

Klikamy na ikonę ołówka. Z prawej strony pojawi się duże okno, gdzie aktualnie wpisane bezedeury wpisujemy:

a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:61:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;s:12:"manage_roles";b:1;s:15:"manage_database";b:1;s:12:"manage_email";b:1;s:12:"manage_polls";b:1;s:11:"simple_tags";b:1;s:17:"admin_simple_tags";b:1;s:14:"manage_ratings";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:35:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:11:"simple_tags";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}

Klikamy ‚zapisz/save’.

Gratulacje – jeśli nie było błędów – przywróciłeś role i dostępy do ustawień standardowych.
Teraz zaloguj się na dane stworzonego przez siebie użytkownika i ustaw właściwemu administratorowi rolę ‚Administrator’.

I voila!

WordPress developer at work

Już 19 stycznia w Warszawie odbędzie się kolejny WordUp.

Będzie można tam zobaczyć m.in. prezentacje:

  • Michał Żuk –  E-commerce na WordPressie
  • Jacek Ławniczak – krótko o swojej przygodzie z WP

Oczywiście oprócz prezentacji najważniejszą sprawą takich wydarzeń są rozmowy kuluarowe ;)

WordPress developer at work

Będąc w określonej kategorii chcemy wyświetlić wszystkie wpisy należące do niej.
Więc jedziemy – edytujemy/tworzymy plik category.php, do szablonu dodajemy następujący kod:

<ul>
<?php

$catID = get_query_var('cat');
$catName = strtolower(get_cat_name($catID));
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}

$myquery = new WP_Query(array(
'post_type' => 'products',
'category_name' => $catName)
);

while ( $myquery->have_posts() ) : $myquery->the_post();

$img_id = get_post_meta($post->ID,'main_image',true);
$img_url = wp_get_attachment_url($img_id);

?>

<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

W większości przypadków automatyczne linkowanie dodawanych do WordPressa zdjęć jest upierdliwe.
Aby wymusić ignorowanie dodawanie znacznika <a href do dodawanych z poziomu wpisu lub strony załączników, robimy małą modyfikację.

W functions.php dodajemy małą funkcję:


function maniek_imagelink_setup() {
$image_set = get_option( 'image_default_link_type' );


if ($image_set !== 'none') {
update_option('image_default_link_type', 'none');
}
}
add_action('admin_init', 'maniek_imagelink_setup', 10);