Спрашиваем и отвечаем по Wordpress-15

SeVlad
На сайте с 03.11.2008
Offline
1609
41506

Предыдущая часть топика.

Несколько замечаний перед созданием поста в топике. Их соблюдение может помочь быстрее и качественнее получить ответ.

  • Формат топика: задал вопрос-получил ответ (опц. - нажал "спасибо" ;) ). Если Ваш вопрос предполагает более-менее продолжительное обсуждение - имеет смысл создать отдельный топик. Так обсуждение будет больше на виду, не потеряется в череде других вопросов и вы не помешаете другим участникам найти ответы на свои вопросы.
  • Это топик по Wordpress. По СЕО, HTML, CSS, JS, общих вопросов безопасности и тп пожалуйста, спрашивайте в соответствующих темах и разделах сёрча.
  • Для показа небольших участков кода используйте bb-код [code][/code]. Большие простыни помещайте на http://pastebin.com, http://jsfiddle.net/ и тп сервисы.
  • Прежде, чем задать вопрос типа
    как из ссылок вида "/?p=123" сделать "/nazvanie-posta/"
    загляните в админку ВП и хотя бы посмотрите на все пункты. В большинстве случаев пока вы не нажмёте "сохранить" - ничего не измениться. Не бойтесь пробовать.
  • Не нужно "спасибных" постов (где только "спасибо", без вопросов и\или описаний решений и тп) - для этого есть кнопка. Плз, не захламляете топик пустышками.

Всем, кто только начинает работать с ВП рекомендую ознакомиться со статьей Новичкам — С чего начать. Здесь вы получите ответы на вопросы типа что нужно перед установкой WordPress, как установить WordPress и что делать дальше.

А вообще в этой статье имеется масса ссылок, которые будут полезны не только новичкам. Рекомендую всем.

Кроме того, вполне возможно, что на вопрос, который вы хотите задать - вы найдете ответ быстрее, чем напишете в топик ;)

Необходимый минимум, который должен знать и уметь админ ВП (и вообще сайтостроитель):

* Термины - рубрики, записи (посты), страницы, сайбар, виджеты, метки\теги, бекап и тд. Не просто знать названия, а понимать их сущность и назначение.

* HTML - базовый уровень (изучить десяток тегов типа <p> или <img> - не велика проблема).

* Посмотреть исходный код страницы в браузере.

* Пользоваться поисковыми системами.

А так же настоятельно рекомендую забыть про виндовый блокнот и править файлы в правильных блокнотах: AkelPad , Notepad++ и тп. В кодировке UTF-8 без BOM.

Если же вы хотите действительно разобраться с движком (вообще любым, не только ВП) и\или иметь хорошие и посещаемый сайты - вам не обойтись без знаний PHP, знаний безопасности (как сетевой, так и др. даже офлайновой), базовых знаний протоколов передачи, базовых знаний работы серверов и ещё много чего.. На что нужно потратить много времени. (Это не запугивание, нет - это совет-предупреждение)

И напоследок полезные ресурсы по ВП:

Старый и новый*NEW кодексы - основной документы по устройству и работе ВП.

Генератор различных кодов для ВП.

WordPress как на ладони" (ex. "Альтернативный взгляд на WordPress) имеет неофициальную русскоязычную документацию (вольный перевод кодекса) по ВП с оч. удобным поиском и фильтрами по ней.

Ру-форумы: Оф. ру-форум, другой русский форум.

Англоязычные Вопросы и Ответы:

http://stackoverflow.com/

http://wordpress.stackexchange.com/

Дополнения к ВП:

Темы и плагины. Новичкам настоятельно рекомендую брать только тут. Почему и чем грозят помойки см п1 и тут.

Ну а тем, кто хочет узнать какие сайты можно делать на ВП смотрите старый (2009г), но в большинстве своём актуальный топик Интересные сайты на ВП (скептики же, могут сразу обратить внимание на часть: "Высоконагруженные и посещаемые сайты на WordPress") и того же года пост 10 вещей которые можно сделать на WordPress помимо блоггинга (много трафа!)

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
sparsame
На сайте с 29.10.2010
Offline
77
#1

приветствую!

На сайте установлен плагин RB External Thumbnail (Внешние изображения для изображений записей.)

Каким образом составить XML для заполнения данного поля, или как узнать имя этого поля для формирования запроса ?

Gerga
На сайте с 02.08.2015
Offline
94
#2
sparsame:
Внешние изображения

Не самая хорошая идея, это замедляет загрузку сайта.

sparsame:
как узнать имя этого поля для формирования запроса ?

Имя поля thumbnail_external.

sparsame
На сайте с 29.10.2010
Offline
77
#3
Gerga:
Не самая хорошая идея, это замедляет загрузку сайта.
Имя поля thumbnail_external.

спасибо за отклик!

Отправляю такую xml. Пост создается, без ошибок, но поле с изображением остается пустым..

не пойму, что я делаю не так...

<?xml version="1.0"?>

<methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param><value><array><data>
<value><int>0</int></value>
<value><string>my_login</string></value>
<value><string>my_pass</string></value>
<value><struct>
<member><name>title</name><value><string>my_title</string></value></member>
<member><name>description</name><value><string>
my_description</string></value></member>
<member><name>mt_allow_comments</name><value><int>0</int></value></member>
<member><name>mt_allow_pings</name><value><int>0</int></value></member>
<member><name>post_type</name><value><string>post</string></value></member>
<member><name>mt_keywords</name><value><string></string></value></member>
<member><name>thumbnail_external</name><value><string>https://my_site/image.jpg</string></value></member>
<member><name>custom_fields</name><value><array><data>
<value><string></string></value>
</data></array></value></member>
<member><name>dateCreated</name><value><dateTime.iso8601>my_data</dateTime.iso8601></value></member>
</struct></value>
<value><boolean>1</boolean></value>
</data></array></value></param>
</params></methodCall>
Gerga
На сайте с 02.08.2015
Offline
94
#4
sparsame:
Отправляю такую xml.

Не особо понятно, куда отправляете?

XML-файл экспорта стандартными средствами WP (http://joxi.ru/vAWnykjtq5ql72) так примерно выглядит:


<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"
xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.2/"
>

<channel>
<title>title</title>
<link>https://site.com</link>
<description>desc</description>
<pubDate>Mon, 15 Jun 2020 08:41:24 +0000</pubDate>
<language>en-US</language>
....

<item>
<title>Australia</title>
....
<wp:post_id>377</wp:post_id>
....
<wp:postmeta>
<wp:meta_key><![CDATA[emoji_flag]]></wp:meta_key>
<wp:meta_value><![CDATA[значение]]></wp:meta_value>
</wp:postmeta>
</item>
</channel>
</rss>

sparsame
На сайте с 29.10.2010
Offline
77
#5
Gerga:
Не особо понятно, куда отправляете?

XML-RPC на добавление записи

Gerga
На сайте с 02.08.2015
Offline
94
#6
sparsame:
XML-RPC на добавление записи

Таким не пользовался, но судя по документации, вы не правильно заполнили XML.


array custom_fields
struct
string key
string value


'custom_fields' => [ [ 'key' => 'thumbnail_external',
'value' => 'https://my_site/image.jpg',
],
],
HM
На сайте с 14.01.2012
Offline
223
#7
sparsame:
Отправляю такую xml. Пост создается, без ошибок, но поле с изображением остается пустым..

Если thumbnail_external это custom field, то надо слать их массивом. xml же не руками формируешь, надеюсь?

sparsame
На сайте с 29.10.2010
Offline
77
#8

спасибо! пока не получается custom_field, но спасибо за направление.

возможно ссылка в данном случае это будет Taxonomy, пробую

up_

вопрос на данный момент решился следующим образом:

- отправляю по xml rpc запрос на создание записи, получаю ID новой записи

- по ID записи добавляю в БД запись нужного url.

----

xml rpc мне необходим для моей работы, поэтому отказаться от него в пользу полного перехода к БД запросам не могу.

HM
На сайте с 14.01.2012
Offline
223
#9
sparsame:
спасибо! пока не получается custom_field, но спасибо за направление.

Смотри, сейчас взял с рабочего постера по xmlrpc, добавил твоё кастом поле:

<?xml version="1.0"?>

<methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param><value><array><data>
<value><int>0</int></value>
<value><string>admin</string></value>
<value><string>passwd</string></value>
<value><struct>
<member><name>title</name><value><string>hello world title2</string></value></member>
<member><name>description</name><value><string>hello world body2</string></value></member>
<member><name>dateCreated</name><value><dateTime.iso8601>20200615T14:18:04</dateTime.iso8601></value></member>
<member><name>mt_allow_comments</name><value><int>0</int></value></member>
<member><name>mt_allow_pings</name><value><int>0</int></value></member>
<member><name>post_type</name><value><string>post</string></value></member>
<member><name>custom_fields</name><value><array><data>
<value><struct>
<member><name>key</name><value><string>thumbnail_external</string></value></member>
<member><name>value</name><value><string>https://my_site/image.jpg</string></value></member>
</struct></value>
</data></array></value></member>
</struct></value>
<value><boolean>1</boolean></value>
</data></array></value></param>
</params></methodCall>

Формируется так:

$date = new IXR_Date(time());                          


$postData = [ 'title' => 'hello world title2',
'description' => 'hello world body2',
'dateCreated' => $date,
'mt_allow_comments' => 0,
'mt_allow_pings' => 0,
'post_type' => 'post',
'custom_fields' => [ [ 'key' => 'thumbnail_external',
'value' => 'https://my_site/image.jpg',
]
]
];


$client = new WP_HTTP_IXR_CLIENT( $url);
$client->debug = false;

if (!$client->query('metaWeblog.newPost', array(0, $login, $passwd, $postData, true))) {
echo "err: " . $client->getErrorMessage() . "\t";
return null;
}


---------- Добавлено 15.06.2020 в 17:38 ----------

sparsame:
- по ID записи добавляю в БД запись нужного url.

Если вдруг хочется делать именно так (непонятно, зачем), можно через wp-cli еще:

usage: wp post meta add <id> <key> [<value>] [--format=<format>]
or: wp post meta delete <id> [<key>] [<value>] [--all]
or: wp post meta get <id> <key> [--format=<format>]
or: wp post meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
or: wp post meta patch <action> <id> <key> <key-path>... [<value>] [--format=<format>]
or: wp post meta pluck <id> <key> <key-path>... [--format=<format>]
or: wp post meta update <id> <key> [<value>] [--format=<format>]
D
На сайте с 22.02.2011
Offline
130
#10

Каким плагином можно установить корзину к определенным записям? - они как информационные статьи, и выборочно нужно будет к ним добавить корзину и страницу с информацией, что оплата наличными при получении товара.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий