Я ищу способ удалить весь ненужный текст из метабоксов worpdress по умолчанию.
Предпочтительно я хотел бы убедиться, что содержимое не просто скрыто с помощью CSS, но фактически удалено из HTML, поэтому оно даже не отображается в источнике.
Области, которые я заинтересован в удалении, включают:
- Кнопка HELP в правом верхнем углу и связывание DIV/HTML/текста при нажатии на нее
- На панели инструментов в метабоксе «Прямо сейчас» я хочу удалить текст, связанный с используемой темой и версией WordPress, а также кнопку «Изменить тему».
- В метабоксе «Атрибуты страницы» внизу есть текст «Нужна помощь? Воспользуйтесь вкладкой «Справка» в правом верхнем углу экрана». Я бы хотел, чтобы этот текст был удален
- В «Метабоксе отрывка» есть текст, который я хотел бы удалить.
- Любой другой текст, который вы также знаете, как удалить, чтобы очистить WordPress.
Привет @NetConstructor. Вы задаете здесь 5 разных вопросов. Поскольку решение для каждого разное, как насчет того, чтобы задать 5 разных вопросов, каждый с хорошо названным заголовком? Если вы это сделаете, то ответ на один из этих вопросов не будет казаться такой уж большой работой, и, возможно, разные люди смогут ответить на разные вопросы. Просто мысль…
@NetConstructor.com — Как вам такая ирония? Мой основной клиент попросил меня сегодня сделать много подобных вещей в моем основном проекте. Они хотят, чтобы все, что связано с WordPress, стало невидимым в админке. Пришлось посмеиваться… 😉
@Майк — Ха! Итак, мне любопытно теперь узнать, что еще вы могли бы сделать, поскольку я со временем собирал вещи вместе, чтобы добиться этого. Некоторые из выдающихся вещей, которых я действительно хотел достичь, были. 1) Скрытие /wp-admin и /wp-login.php, чтобы к ним нельзя было получить доступ. 2) Создание функции автоматически изменит все назначенные классы и идентификаторы wordpress на что-то другое 3) самое важное, что я не могу понять, это как изменить get_bloginfo(‘stylesheet_directory’) и/или get_bloginfo(‘template_directory’) и другие вызовы по умолчанию для автоматического удаления wp-content/theme-name из печатного URL-адреса
@NetConstructor.com — это намного сложнее, потому что они связаны с тем, как работает сайт. Сравнительно, удалить текст легко. Мне интересно, а зачем тебе это? В случае моего клиента они продают то, что я пишу, как свой продукт и думают, что наличие WordPress обесценивает его в глазах своих клиентов (что, к сожалению, вероятно, верно).
@Mike — Правда, по моему опыту, некоторым компаниям, которые слышали о wordpress, говорили, что это отстой или что это плохой выбор. Хотя я должен был бы согласиться с тем, что для больших сайтов и / или тех, которые содержат множество пользовательских запросов, это правильно, в большинстве случаев я обнаружил, что WordPress более чем идеален. В любом случае… для более крупной фирмы, где я считаю, что wordpress — хороший выбор, им обычно нравится более индивидуальное решение, даже если это только косметическое средство.
@mikeschinkel — Большое спасибо за ваш вклад. Я чувствую, что если я пойму это немного лучше, я смогу использовать это для достижения того, что мне нужно, без необходимости просто скрывать метабоксы через css, что я и делал. Однако я заметил, что когда я интегрирую код в свой файл functions.php, html страницы по-прежнему включает class=»metabox-prefs» вместе со всей информацией о справке. Не могли бы вы показать мне, как я могу удалить это. По сути, я не хочу упоминать о помощи визуально или в html.
@NetConstructor.com : Вы видите
preg_replace()
? Оберните его вывод другимpreg_replace()
, на этот раз нацеленным на<div class="metabox-prefs"></div>
. (Я полагал, что вы знакомы с RegEx; разве это не то, что вы можете изменить самостоятельно?)@mikeschinkel — я думаю, единственное, что меня здесь смутило, это то, как вы ввели #Us в код своего ответа… Не могли бы вы кратко объяснить это?
@NetConstructor.com — Хороший улов. Это модификаторы RegEx ( bit.ly/php-regex-modifiers ). Капитал
"U"
является «нежадным», что означает, что не пытайтесь найти закрытие</div>
дальше, используйте первое, что вы получите. Нижний регистр"s"
означает соответствие между возвратом каретки и переводом строки, т.е. выполнение «многострочного» совпадения. Кстати, мне пришлось разобраться с этим трудным путем; кажется, что никто (другой) нигде их не объясняет, по крайней мере, не в контексте. ХТН.@mikeschinkel — хммм… очень интересно. Первый раз слышу о его использовании. Я играл с этим, но мне трудно понять, как применить эту логику, чтобы удалить текст для метабокса «атрибуты страницы», не испортив другие теги
, используемые там. Каков наилучший план действий? сопоставить полный текст, чтобы убедиться, что он не удаляет вещи, связанные с другими потенциальными плагинами, которые изменяют эту область? Как бы вы написали этот код? Не могли бы вы показать это, чтобы я мог узнать ваш путь?
@MROSWELL — я подробно изучил файл и информацию, однако, хотя информация и примеры были очень интересными, ни одна из информации по ссылке не ответила на вопрос, на который я ищу ответ. Пожалуйста, исправьте свой ответ, если вы знаете, как это сделать.
Боюсь, я привел вас только наполовину. Я продолжу обдумывать это, чтобы посмотреть, сможем ли мы приблизиться к окончательному ответу. Или, возможно, другие ответы «вернут его домой». Кстати, я сосредоточился на № 2 (и № 5) в вашем списке вопросов выше.
@mroswell — я полагаю, что для пункта 2 выше он удалит все поле прямо сейчас, когда я хочу удалить только области внутри него, как указано. Что касается пункта 5… тем не менее, ссылка была чертовски интересной, спасибо, что поделились ею. Пожалуйста, дайте мне знать, когда вы найдете какую-либо дополнительную информацию!
Я предполагаю, что моя идея заключалась в том, чтобы удалить исходную панель инструментов_right_now, а затем заменить ее новой панелью управления my_dashboard_right_now, за вычетом оскорбительных частей.
@NetConstructor.com: я добавил пример custom_dashboard_widgets для примера right_now_no_theme…. можно было бы внести небольшие изменения, потому что таблица стилей не совсем правильная. Но работает, то есть кнопки темы больше нет.
@bueltge ваш плагин работает хорошо, но это хороший ответ только для тех, кто является конечным пользователем, а не для тех, кто действительно хочет знать, как писать код. Кстати, всякий раз, когда вы предлагаете свои собственные плагины, дайте понять, что они ваши. Я уверен, что это была оплошность с вашей стороны (я знаю, что вы не спамер), но гораздо труднее привлечь спамеров к ответу, когда мы не просим всех следовать правилам. Нет ничего плохого в том, чтобы предлагать свои собственные плагины, где это применимо, но лучше, чтобы было ясно, что это ваш собственный плагин, а не одобрение третьей стороны.
@Mike: да, я не спамер, но я понял вопрос вверху, чтобы пользователь искал простой способ, а не способ кодирования. Я также могу написать решение вопроса через пользовательский плагин или в теме, но я понял, что вопрос немного другой. Извините, когда ссылка на плагин является спам-комментарием.
@bueltge — @NetConstuctor.com задал множество вопросов, и кажется, что он интересуется тем, как что-то программировать. Я заметил это, вы, вероятно, не так уж и плохо. Но не забудьте упомянуть, что если вы предлагаете свои собственные плагины, то они на самом деле являются вашими плагинами; это будет держать все на подъеме.
Спасибо, Майк, я вспомню об этом в своем следующем комментарии. Может быть, это важно, чтобы я лучше прочитал вопрос и тренировал свой английский.
@bueltge На всякий случай, пожалуйста, не принимайте это на свой счет; мы просто пытаемся немного модерировать. На протяжении многих лет вы были прекрасным участником сообщества WordPress. Также я бы хотел, чтобы мой немецкий был на 1/100 так же хорош, как ваш английский. 🙂
Вот ответ на вопрос №1. Сейчас не хватает времени, чтобы сделать все остальное.
1.) Удаление кнопки ссылки на справку администратора
К сожалению, WordPress не предоставляет хука, позволяющего вам воздействовать на кнопку «Справка» в правом верхнем углу панели администратора, но вы можете использовать несколько грязный хак, чтобы добиться того, чего вы пытаетесь достичь.
Теперь вы видите это:
(источник: mikeschinkel.com )
Теперь вы не:
(источник: mikeschinkel.com )
Вызывая хуки
contextual_help
иadmin_notices
, те, которые вызываются непосредственно перед и сразу после вывода кнопки ссылки на справку, соответственно, вы можете захватить выходной буфер и удалить оскорбительный HTML с помощьюpreg_replace()
. Пара функцийob_start()
/ в PHP — это то, что вам нужно для буферизации вывода, а затем для захвата этого буферизованного вывода, альт:ob_get_clean()
В общем, вы можете использовать эту технику для изменения или удаления почти любого вывода HTML, сгенерированного WordPress, путем поиска перехватчиков «до» и «после», но имейте в виду, что это очень хрупкая техника; если другой плагин изменил вывод HTML по сравнению с тем, что вы ожидали, ваш код
preg_replace()
может не соответствовать. В любом случае…3.) Удаление текста справки из метабокса атрибутов страницы
Чтобы удалить текст справки для метабокса «Атрибуты страницы», не требуются регулярные выражения, достаточно простого
str_replace()
. (Обратите внимание, что поиск правильных хуков занял больше всего времени.) :Есть еще один подход, который вы можете использовать, когда все, что вы хотите сделать, это удалить текст из ядра, и это использовать
'gettext'
хук. Следующий код удаляет текст справки из метабокса «Атрибуты страницы»:Обратите внимание, что я с осторожностью использую этот хук, так как он вызывается сотни раз за загрузку страницы; 577 раз просто для загрузки панели администратора, если я только что тестировал, например. Поэтому, если вы используете его, убедитесь, что вы не делаете ничего, что является «дорогим» в вычислительном отношении, например, запускает необработанный SQL-запрос или что-то подобное.
4.) Удаление текста из «метабокса выдержки»
Мы будем использовать вариант № 2 из метода № 3, чтобы удалить текст справки из метабокса отрывка (в этот вариант я включил код из метода № 3, поэтому он заменяет код в № 3) :
Превосходный доклад Джейка Голдмана на WordCamp Mid-Atlantic представляет собой отличное руководство: http://www.cmurrayconsulting.com/wordpress-tips/customizing-wordpress-admin/#more-939
Загрузите хорошо прокомментированную тему, которая появляется под слайд-шоу. (Он просит, чтобы, если вы используете его код, указать его имя в комментариях к коду.)
Он упоминает, что вы можете получить все идентификаторы виджетов следующим образом: var_dump($wp_meta_boxes[‘dashboard’]);
Вы можете: unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]);
Затем добавьте свой собственный виджет, используя wp_add_dashboard_widget().
Посмотрите в wp-admin/includes/dashboard.php для функции, wp_dashboard_right_now() для модели того, что добавить (удаление информации о теме, по желанию).
functions.php
Альтернативно и очень просто: используйте плагин Adminimize, у этого плагина много опций, и вы можете добавить свои собственные опции. Этот плагин мой собственный, и я буду кодировать более новый плагин с лучшим кодом. Возможно, это поможет решению csutom прочитать источник.