icopydoc
Ответы в темах
-
Форум: Проблемы и решения
Тема: поменять alt у изображения заголовкаНу вы бы сформулировали точнее.
Скорее всего нужно лезть в файл header.php и копать там.
Скорее всего там сейчас прописан альт так
alt=»<?php bloginfo(‘name’); ?>»Также есть вариант, когда картинка залита через обычную медиатеку вордпрес и альт прописан к конкретной картинке прямо там. Тогда нужно лезть, искать и менять.
И это лишь 2 из возможных и наиболее вероятных вариантов. Вы точнее сформулируйте.
Есть вариант, что шапка прописана не только в header.php но и в front-page.php, home.php
Вы точнее расскажите все.PS а еще в настройках темы может задаваться через мета поля.
Форум: Проблемы и решения
Тема: Не работает remove_capОповещения сделал через хук add_action(‘admin_notices’)! Спасибо. Тема решена!
Форум: Проблемы и решения
Тема: Не работает remove_capСергей, спасибо ОГРОМНОЕ! Работает!
Может кому понадобиться, ниже код с комментариями (как я это понял своими словами)function disallow_publish_posts( $caps, $cap, $current_user_id, $args ) { /* Этот фильтр срабатывает всякий раз, когда проверяются права на совершение того или иного действия. Срабатывает всегда при проверке current_user_can. В нашем случае в момент проверки current_user_can( 'publish_posts' ). $cap - право, которое проверяем (в нашем случае его надо урезать) $caps - массив со списком прав, которые необходимы для совершения определенного действия. Если к этим правам добавить $caps[] = 'do_not_allow'; - мы запретим данное действие в данный момент времени */ if ( 'publish_posts' === $cap ) { // проверяется возможность публиковать запись $user = get_userdata( $current_user_id ); // получаем данные юзера $role = ( $user ) ? current( $user->roles ) : ''; // вытаскиваем его роль $n_postov = get_the_author_meta('limit_postov', $current_user_id); // получаем число оставшихся у юзера постов if (($n_postov == '')||$n_postov == '0') { // если счетчик постов на нуле if ( 'reel' === $role) { // и при этом юзер в группе reel $caps[] = 'do_not_allow'; // блокируем возможность прямой публикации поста (вместо этого WP подставит конпку "Отправить на утвеждение") }} else {$n_postov = $n_postov - 1; update_usermeta( $current_user_id, 'limit_postov', $n_postov );} } return $caps;} add_filter( 'map_meta_cap', 'disallow_publish_posts', 10, 4 );PS в моем случае для юеров в профиле создавался отдельный блок с «лимитом постов» (limit_postov)
Последний вопрос. Как посоветуете активировать вверху сообщение, что мол «ваш лимит постов исчерпан». Чтобы выводилось на каждой страничке выше заголовков.Форум: Проблемы и решения
Тема: Не работает remove_capСпасибо за наводку. А можете чуточку пояснить код. В кодексе чет крайне мало нашел про map_meta_cap http://codex.wordpress.org/Function_Reference/map_meta_cap
и не совсем уловил принцип его работы
хотяб кратко подскажите что значат переменные
$caps, $cap, $current_user_id, $args
я так понимаю, что $caps — это массив?
а еще что лежит у нас в $args ?я пока только вот что понял
в $cap у нас то право, которе хотим урезать.
$current_user_id — id того, кого урезаем.$caps у нас что? Все права которые есть у юзера или как? а в $args?
И в какой момент map_meta_cap срабатывает? Т.е. к примеру я урезаю только юзеров из группы reel, админов и прочих не урезаю….
вообще мой первичный код висел на add_action(‘publish_post’ и выглядел так.
$cur_user_id = get_current_user_id(); // id текущего юзера $user = new WP_User( $cur_user_id ); // создаем экземпляр касса юзера $n_postov = get_the_author_meta('limit_postov', $cur_user_id); // получаем число оставшихся у юзера постов if (($n_postov == '')||$n_postov == '0') { $user->remove_cap( 'publish_posts' ); // и урезаем права if(current_user_can('publish_posts') ){ echo "У юзера есть право publish_posts!"; } else {/*Отнимаетм от счетчика единичку*/} }Форум: Проблемы и решения
Тема: Не работает remove_capТа же трабла((
Я не знаю, важно это или нет. Но юзер у меня принадлежит произвольному типу ролей. Может там особенности какие при работе с подобными ролями и правами/* Создаем новую роль пользователя reel */ $new_role = add_role ( 'reel', // название роли __( 'Моя роль', 'r7'), // отображаемое название роли array( // массив возможностей 'read' => true, // просмотр сайта 'delete_posts' => true, // удаление собственных записей 'edit_posts'=> true, // редактирование собственных записей 'delete_published_posts' => true, // удаление собственных опубликованных записей 'publish_posts'=> true, // публикация постов 'upload_files'=> true, // загрузка файлов 'edit_published_posts'=> true // редактирование собственных опубликованных записей )); if ( null !== $new_role ) { trigger_error("роль успешно создана"); /* смотрим результат - роль успешно создана */ } else { /* если null, то значит роль уже существует */ }Создание роли повешено на
register_activation_hook(__FILE__, ‘r7i_set_options’);PS урезание прав повешено на
add_action(‘publish_post’, ‘r7_control_package’, 0);
(т.е. суть в чем. Я делаю лимитатор. Что каждый юзер можент опубликовать лишь по одному посту.)Т.е вы хотите создать страницы, которые можно лишь в админке смотреть? Или во внешней части сайта тоже можно, но лишь при наличии ссылки?
Форум: Проблемы и решения
Тема: Убрать пустотуВообще это от верстки зависит. Там скорее всего в цсс высота блока фиксирована. По скриншоту подсказать не реально, нужна ссылка на сайт как минимум. Но думаю, что да, возможно.
denisco, спасибо за мини-плагин в той теме, только у меня трабла по сути я так понимаю с аяксом и jsoon.
Может взглянете код. (Я там вроде почти каждую строку комментил, возможно есть ошибки, которые бросаются явно в глаза)
PS там не полный код админ перекинул. Вот полный http://paste.debian.net/411690/Спасибо!
Спасибо. Вроде прояснилось! А по этому вопросу не подскажете случайно? https://ru.forums.wordpress.org/topic/%d0%9a%d0%b0%d0%ba-%d0%bf%d0%be%d0%b4%d0%ba%d0%bb%d1%8e%d1%87%d0%b8%d1%82%d1%8c-css-%d1%84%d0%b0%d0%b9%d0%bb-%d0%b8%d0%bb%d0%b8-js?replies=2
Вот я и запутался. Для большего прояснения вопроса: Вот стандартный пример.
add_action( 'init', 'true_register_products' ); // Использовать функцию только внутри хука init function true_register_products() { $labels = array( 'name' => 'Товары', 'singular_name' => 'Товар', // админ панель Добавить->Функцию 'add_new' => 'Добавить товар', 'add_new_item' => 'Добавить новый товар', // заголовок тега <title> 'edit_item' => 'Редактировать товар', 'new_item' => 'Новый товар', 'all_items' => 'Все товары', 'view_item' => 'Просмотр товаров на сайте', 'search_items' => 'Искать товары', 'not_found' => 'Товаров не найдено.', 'not_found_in_trash' => 'В корзине нет товаров.', 'menu_name' => 'Товары' // ссылка в меню в админке ); $args = array( 'labels' => $labels, 'public' => true, // благодаря этому некоторые параметры можно пропустить 'menu_icon' => 'dashicons-cart', // иконка корзины 'menu_position' => 5, 'has_archive' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments'), 'taxonomies' => array('post_tag') ); register_post_type('product',$args); }Правильным ли в нем будет заменить первую строку на
add_action( ‘registered_post_type’, ‘true_register_products’ );
или нет?
Или этот хук (registered_post_type) только для изменения стандартных post-страниц? И его нельзя использовать для создания своего собственного типа записей?
Аналогичный вопрос по хуку registered_taxonomyФорум: Проблемы и решения
Тема: Как подключить css файл или js?Либо в functions.php через хук wp_enqueue_scripts https://codex.wordpress.org/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%BF%D0%BE_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%D0%BC/wp_enqueue_script
Либо так (не совсем правильный, но наиболее распространенный способ):<script type='text/javascript' src='<?php bloginfo('template_directory'); ?>/my.js'></script> <link rel='stylesheet' href='<?php bloginfo('template_directory'); ?>/style.css' type='text/css' media='all' /><?php bloginfo(‘template_directory’); ?> означает, что файлы должны лежать в папке с шаблоном
Вставить можно к примеру в headr.php темы