Как удалить json файл
Если вы устанавливали WordPress с нуля, то замечали, что из коробки он предоставляет довольно избыточный функционал, например, вставляет в head много лишних тегов: wp-json, xmlrpc, pingback, canonical, feed, emoji, generator, profile, wmlmanifest, link rel next и prev, и тому подобные. Большинству сайтов они ни к чему, и поэтому им стоит избавиться от лишнего хлама.
- Что такое WP JSON и как его отключить и удалить
- Отключаем WP JSON REST API с помощью плагина Disable REST API
- Код для отключения и удаления wp-json и oembed в WordPress
- Что такое XML-RPC и как его отключить и удалить
- Отключаем XML-RPC с помощью плагина Disable XML-RPC Pingback
- Код для отключения и удаления XML-RPC
- Что такое Emoji и как их отключить и удалить
- Плагин WordPress для отключения Emojis — Disable Emojis
- Код для отключения Emoji в WordPress
- Удаляем pingback, canonical, meta generator, wlwmanifest, EditURI, shortlink, prev, next, RSS, feed, profile из заголовков head
- Настроим редирект с /feed/ на главную
- Убираем CSS стили .recentcomments
- Удаляем лишний код из header.php
- Что не следует удалять из заголовков
- Что ещё пригодится при настройке WordPress
Что такое WP JSON и как его отключить и удалить
WP JSON — это сокращение от WordPress JSON REST API. Описание сложное, поэтому объясню проще — это функционал, с помощью которого для WordPress можно написать приложение на абсолютной любой платформе и на любом языке, и с помощью этого приложения управлять сайтом — добавлять, изменять и удалять содержимое, настраивать темы, меню, виджеты и прочее.
В общем, из всего этого описания вам должно быть ясно, что wp-json — пока что совершенно лишнее на вашем сайте, и его надо отключать. К тому же, Яндекс любит выкидывать wp-json в индекс как подраздел сайта. Конечно, это лечится с помощью закрытия от индексирования /wp-json/ в robots.txt , но, всё же, лучше отключить и настроить выдачу ошибки 404 Not Found по этому адресу.
Отключая функционал WordPress REST API, помните, что его используют некоторые популярные плагины, например Contact Form 7 и Yoast SEO. Поэтому, если вдруг у вас перестала работать форма обратной связи, посмотрите, а не отключен ли REST API?
Есть 2 способа избавиться от wp-json, плагин и код.
Отключаем WP JSON REST API с помощью плагина Disable REST API
Для отключения wp-json можно воспользоваться плагином Disable REST API, так как его автор будет поддерживать код в актуальном состоянии в зависимости от возможных изменений в будущих версиях движка WordPress.
Плагин WordPress для отключения wp-json — Disable JSON API
Плагин, конечно, функционал JSON REST API отключит, но вот от раздела /wp-json/ на сайте не избавит. Поэтому, этот вариант немного не то, что нам надо. Идём дальше.
Код для отключения и удаления wp-json и oembed в WordPress
Код взят из разных источников, в основном отсюда, и в том числе, и из вышеуказанного плагина
Код вставляется в functions.php или mu-plugin (желательно).
Что такое XML-RPC и как его отключить и удалить
Не напоминает WP JSON REST API? Так и есть, xmlprc — его предок, который используется WordPress в текущее время. Почему один замещают другим — возможно, ответ кроется в громоздкости формата XML по сравнению с JSON. Да и не особо это важно в свете текущей статьи. Главное — как избавиться от xmlrpc, не навредив сайту.
Просто удалить файл xmlrpc.php из корня сайта нельзя — им пользуются некоторые популярные плагины навроде JetPack.
Чтобы решить вопрос верно, вы можете воспользоваться 2 вариантами: плагином или кодом.
Отключаем XML-RPC с помощью плагина Disable XML-RPC Pingback
Если сайт на WordPress сильно тормозит, и Вы не понимаете, почему, советую заглянуть в логи ошибок сервера и изучить их:
Обратите внимание на POST /xmlrpc.php . Если она присутствует и часто появляется, значит, сайт атакуют, и нужно срочно закрывать XML-RPC.
Полностью XML-RPC отключать нельзя — им пользуются некоторые плагины. Но некоторые методы, позволяющие проводить атаки на сайты, предупредить можно. И в этом помогает плагин Disable XML-RPC Pingback.
Плагин WordPress для отключения опасных свойств XML-RPC — Disable XML-RPC Pingback
Код плагина также состоит из пары фильтров и функций, которые я опишу в следующем пункте. И, опять же, рекомендую пользоваться этим плагином, так как его автор будет следить за обновлениями.
Код для отключения и удаления XML-RPC
Если вам интересно увидеть сам код, отключающий опасные методы XML-RPC, или просто не хочется ставить лишние плагины, можете воспользоваться кодом ниже
Также, существует способ полностью выключить XML-RPC с помощью следующего фильтра, но не рекомендую использовать его, так как он нужен для JetPack и похожих плагинов.
Результат: отключили опасные методы работы механизма XML-RPC для WordPress
Что такое Emoji и как их отключить и удалить
Есть 2 способа отключить Emoji, отдельным плагином и просто кодом, причём оба имеют право на жизнь.
Плагин WordPress для отключения Emojis — Disable Emojis
Можно обойтись простым плагином Disable Emojis. Не надо его бояться, он не содержит лишних настроек, лишь пару фильтров, код которых, по сути, мы и дублируем к себе в следующем пункте.
В чём преимущество плагинов — их авторы, как правило, следят за обновлениями WordPress и вносят необходимые коррективы в функционал своих плагинов, выпуская обновления, в отличие от нас с вами :) Поэтому, я бы рекомендовал воспользоваться текущим вариантом.
Плагин WordPress для отключения Emojis — Disable Emojis
Учтите, что плагин не вносит изменения в базу данных, которая с версии WordPress 4.2 имеет формат кодировки utf8mb4 , что подразумевает под собой возможность сохранять сами знаки emoji в страницах и записях независимо от наличия или отсутствия Disable Emojis на сайте. При этом, смайлики emoji будут отображаться только в самых современных браузерах.
Код для отключения Emoji в WordPress
Ниже представлен набор фильтров и хуков (экшнов), который сможет отключить Emoji и избавит от ненужного хлама в head . Код полностью скопирован из вышеуказанного плагина, и я настоятельно рекомендую пользоваться именно плагином, ибо его автор будет следить за обновлениями, в отличие от меня :)
Код вставляется в functions.php или mu-plugin (желательно).
Результат: удалён вывод javascript-кода поддержки emoji в секции head. Но здесь то же самое, что и с плагином — emoji сохранять в постах можно, но отображаться они теперь будут не во всех браузерах, а только тех, что их поддерживают (как правило, в самых современных).
Удаляем pingback, canonical, meta generator, wlwmanifest, EditURI, shortlink, prev, next, RSS, feed, profile из заголовков head
Настроим редирект с /feed/ на главную
Если вы пользуетесь Feedburner, добавляете изменения в .htaccess
Убираем CSS стили .recentcomments
Если вы пользуетесь виджетом Последние комментарии, то WordPress для него пропишет в коде стили css с классом .recentcomment , которые довольно сложно перебить своими. Чтобы не бодаться с этой проблемой, пользуемся следующим кодом
Далее, перейдём к очистке header.php
Удаляем лишний код из header.php
Если в вашей теме WordPress есть header.php , откройте его в любой программе с подсветкой синтаксиса, например Notepad++ или Far Manager.
В секции head найдите лишний код и удалите его.
Удаляем лишний код из head секции
Например, на скрине я выделил код:
В 1 строке — это заголовок, указывающий на то, что на странице используется микроформат XFN. Если вы его не используете (а это, скорее всего, так) — удаляйте.
Во 2 строке — это ссылка, указывающая, по какому адресу оставлять пингбеки. Их мы не позволяем оставлять, поэтому удаляем код.
Запретить оповещения с других блогов (уведомления и обратные ссылки) на новые статьи
Таким же методом можно удалить и другой код, который не удалился с помощью фильтров, например
Не забывайте делать резервные копии изменяемых файлов, чтобы откатить всё назад, если удалили лишнего
По сути, всё, что должно остаться в head в header.php, это что-то примерно следующего содержания
Что не следует удалять из заголовков
Некоторые советуют также удалять dns-prefetch:
Я бы не стал этого делать, потому что dns-prefetch призван ускорить загрузку страниц со внешних источников, а точнее, ресурсов, которые на них располагаются. По адресам, указанным в dns-prefetch , браузер будет делать предварительный резолв, что на медленном интернете может показать себя особенно хорошо.
На этом чистка закончена. Далее пройдёмся по дополнительным пунктам настройки, которые могут пригодиться.
Что ещё пригодится при настройке WordPress
Далее, список советов, что нужно использовать ещё, чтобы оптимизировать работу сайта:
I want to remove JSON element or one whole row from JSON.
I have following JSON string:
I answered the question, you might want to have a look at it. I added the answer because many people don't take into consideration how garbage collection works.
12 Answers 12
You can use splice to remove elements from an array.
Why are always the worst answers at the top? Could it possibly be the rep points? I searched. I found. You had the correct answer.
Where's foo in the test data? Well, the first line is actually pseudocode. Instead of json = <. >, it would be something like json =
Do NOT have trailing commas in your OBJECT (JSON is a string notation)
UPDATE: you need to use array.splice and not delete if you want to remove items from the array in the object. Alternatively filter the array for undefined after removing
You can try to delete the JSON as follows:
Alternatively, you can also pass in the index to delete an attribute:
However, to understand some of the repercussions of using deletes, have a look here
I recommend splice method to remove an object from JSON objects array.
I use this because when I use delete method, I get null object after I do JSON.stringify(json)
Splice should be the accepted answer, delete replaces the json document with a NULL insertion. I wanted delete to delete it -- splice will.
For those of you who came here looking for how to remove an object from an array based on object value:
Note: These functions will remove all users named Tim from the array.
Upvoted, but this fails if there are multiple Tims in the user list. You'll need to loop backwards to avoid messing up the array indices during the removal step.
All the answers are great, and it will do what you ask it too, but I believe the best way to delete this, and the best way for the garbage collector (if you are running node.js) is like this:
This way the garbage collector for node.js will know that json['somekey'] is no longer required, and will delete it.
I've read about doing it this way too, but I cannot get this to work. It still leaves the null references
As described by @mplungjan, I though it was right. Then right away I click the up rate button. But by following it, I finally got an error.
Delete is just remove the data, but the 'place' is still there as undefined.
I did this and it works like a charm :
meaning : delete 1 item at position 3 ( because array is counted form 0, then item at no 3 is counted as no 2 )
Try this following
if we want to remove one attribute say "firstName" from the array we can use map function along with delete as mentioned above
Could you possibly use filter? Say you wanted to remove all instances of Ropbert
You can add further values to narrow down the items you remove, for example if you want to remove on first and last name then you could do this:
Although as noted, if you have 4 'Ropbert Jones' in your array, all 4 instances would be removed.
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
Not the answer you're looking for? Browse other questions tagged javascript json or ask your own question.
Linked
Related
Hot Network Questions
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.5.11.42086
Не понял. То есть вам от сервера приходит какой-то не тот ответ и поэтому не удаляется?
Никита Полевой:
ответ приходит такой - какой я делаю запрос.
просто вот разница в скобках:
и когда возвращается ответ с квадратными скобками - удаление не получается.
horosami: а вообще лучше наверно использовать бд если вы собираетесь хранить эти данные, там то что вы хотите сделать делается одним запросом
Евгений:
я вас прекрасно понимаю.
НО. у меня по заданию бд это и есть db.json.
и я не могу взять и сделать каскадное удаление одним махом. не работает.
поэтому прошу помочь, как это сделать лучше)
horosami: Что значит фраза "удаление не получается"? Посылайте запрос на удаление в соответствии с вашим API - если API позволяет удалять только по одному элементу, то отправляйте только один элемент, а если API позволяет удалять много элементов, то отправляйте массив элементов. Хотя опять же зависит от API.
Вообще лучше предоставьте весь алгоритм который надо выполнить чтобы сделать то что вы хотите. Вы уж простите, я хоть недавно и получил в комментариях похвалу в виде фразы "телепатия у вас неплохо прокачана" из-за того что догадался чего хочет ТС, но вот ваше объяснение я пока не понял.
Никита Полевой: Мой запрос позволяет удалять один элемент, получается. Но может быть есть возможность построить по-другому запрос. Таким образом, чтобы возвращался не массив тегов, а один объект, в котором будет храниться весь массив, например.
Или может быть у вас получится придумать какое-то супер объединение таблиц таким образом, чтобы возвращался пост, к нему все комментарии и теги одновременно, чтобы сразу можно было удалить все, не делая два запроса отдельно для тегов и отдельно для поста с комментариями
И то что вы описали это только Аякс запрос, само действие которое выполняется по данному роуту пришлите
Евгений: я выполняю удаление, указывая в аякс запросе type: "DELETE". Я что-то неправильно делаю? или как?
Вы таким образом не удаляет, а только отправляете данные методом delete, в дальнейшем данные которые вы отправляете этим запросом как-то обрабатываются, вот этот алгоритм который обрабатывает данные я и прошу что бы вы скинули.
Используйте nodejs для добавления, удаления, изменения и проверки локальных файлов json
Здравствуйте! Файловая система nodejs. Те, кто был в контакте с node, обязательно будут знакомы с файловой системой node. Я думал над вопросом в последние два дня. Могу ли я управлять своим локальным файлом json локально, чтобы локальная текстовая база данных была доступна , Если это стикер, записывающее программное обеспечение, мне вообще не нужно подключаться к серверной базе данных, я могу управлять локальным файлом json самостоятельно и самостоятельно писать серверную часть с помощью узла. Ответ - да, давайте реализуем это вместе, правильно Добавить, удалить, изменить и проверить локальные файлы json
1. увеличить
Во-первых, давайте посмотрим на структуру демонстрационных каталогов.
Давайте посмотрим на содержимое person.json
Ничего страшного, следующий момент, чтобы стать свидетелем чуда
Напишите код nodejs ниже
Результат выглядит следующим образом
Давайте посмотрим на результат файла json.
Смотрите, файл json добавлен
2. Удалить
Пятый удален
3. Изменить
Исходный файл json выглядит так
Результат выглядит следующим образом
Взгляните на файл json
4. Отметьте
Теперь имитируйте пейджинг
Сначала посмотрите, как выглядит файл json
загрузить код
Посмотрим на вторую страницу
выполнить pagination(1,6);
Результат выполнения:
и т. д., чтобы добиться эффекта имитации разбиения по страницам.
5. Резюме
Хорошо, был написан набор основных дополнений, удалений и изменений. Я чувствую, что этот узел по-прежнему очень мощный, и я чувствую, что я немного улучшился. Хотя некоторые люди могут подумать, что писать таким образом, возможно, бессмысленно, но я думаю, что это очень важно. Получите много! ! !
Перевод статьи «How to remove a sensitive file from your commit history on GitHub».
Photo by Simone Pellegrini on Unsplash
О, да! У большинства из нас такое случалось хотя бы раз за годы работы, особенно в начале карьеры. Мы случайно коммитим конфиденциальные данные на GitHub. Например, забываем добавить в gitignore наш конфиг-файл, содержащий пароли базы данных или ключи API, или jwt secret. И мы тут же начинаем паниковать.
Это случилось и со мной пару дней назад. Я забыла добавить в gitignore мой дефолтный JSON-файл, содержащий пароль для соединения с базой данных и jwt secret. Функция, которую я писала, наконец-то заработала, и на волне воодушевления я немедленно закоммитила и отправила код на GitHub. Допущенную ошибку я обнаружила, только получив уведомление от GitGuardian о том, что мой последний коммит содержит секретные ключи.
Если вы оказались в такой же ситуации, первое, что нужно сделать, это изменить видимость репозитория. Если репозиторий публичный, сделайте его приватным. Таким образом никто посторонний не увидит ваш конфиденциальный файл, пока вы работаете над его удалением.
Далее, если вы еще не находитесь в папке своего проекта, перейдите в него (команда cd в вашем терминале). Допустим, моя папка проекта называется My-Project, а в ней содержится конфиденциальный файл secretFile.json, который я хочу удалить.
Затем запустите следующую команду. Вам нужно указать путь к файлу, а не только его имя.
В моем случае secretFile.json находится в папке config. Замените config/secretFile.json на путь к своему файлу, который должен быть удален.
Примечание. Эта команда удалит файл и из вашего локального репозитория, так что заранее скопируйте его содержимое в блокнот.
Вот и все! История вашего репозитория чиста, а от конфиденциальных файлов в ней не осталось и следа.
Примечание от редакции Techrocks
В других источниках, в частности, на Хабре, есть некоторые оговорки насчет использования этого метода. Во-первых, нужно учитывать, не зависят ли от состояния репозитория другие ветки и форки. Во-вторых, несмотря на исправление коммита, старый вариант останется в кеше, поэтому нужно будет заняться его очисткой. О других способах исправления допущенных ошибок можно почитать в статье «Как это отменить?! Git-команды для исправления своих ошибок» и «Доходчивое объяснение Git Reset».
Читайте также: