Zennoposter + Wordpress = XMLRPC || ✔2GIS Parser в ZennoPoster

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113
С добавлением тегов и категорий разобрался.
Сначала создаем тег
Код:
using (var client = new WordPressClient())
{
    var termId = client.NewTerm(new Term
    {
        Name = "term test",
        Description = "term description",
        Slug = "term_test",
        Taxonomy = "post_tag"
    });
}
Потом добавляем их к посту.
Код:
Term[] t = new Term[2];//размер массива соответствует кол-ву добавляемых тегов
                {
                    var category = Convert.ToInt32(1);
                     t[0] = client.GetTerm("category",28);//id категории видим наведя на неё курсор
                    t[0] = client.GetTerm("post_tag",7);//id тега видим наведя на неё курсор либо юзаем termId
                    t[1] = client.GetTerm("post_tag",9);//id тега видим наведя на неё курсор либо юзаем termId
                };
                var post = new Post
                {
                    PostType = "post", // "post" или "page"
                    Title = "Заголовок",
                    Content = "Контент записи, <a> А тут html код)</a>",
                    PublishDateTime = DateTime.Now, // Дата публикации
                    Status = "publish", // "draft" или "publish" (draft это черновик)
                    Terms = t
                };
А вот с публикацией без попадания в расписание оказывается таймзону нужно было выставить на сайте.
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113
А как вообще лучше поступить с картинками загружаемыми с локального компа?
1. Грузить по ФТП.
2. Грузить через XML-RPC.
Вот организовал второй вариант посредством Data.CreateFromFilePath и client.UploadFile и призадумался, что при больших масштабах, а это тысячи изображений, все они будут в БД медиа-галерии и возможно будут тормозить итак не быструю ЦМС.
А если выбрать первый вариант, то это может выглядеть неестественно для ПС.
 
Последнее редактирование:

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 340
Благодарностей
298
Баллы
83
А если выбрать первый вариант, то это может выглядеть неестественно для ПС.
Какое отношение имеет ПС к тому, как ты картинки на сервер заливаешь?
А как вообще лучше поступить с картинками загружаемыми с локального компа?
В целом, всё зависит от того, какой контент ты грузишь на сайт и как его готовишь. Если у тебя каждая статья строго авторская, с авторскими фото, это одно, если же текст + любые тематические фото к нему, это другое.
В первом случае,- надо искать индивидуальный подход (лучше писать и заливать всё вручную).
Во втором случае, на мой взгляд лучший вариант,- залить фотки в нужные папки (согласно категориям, или задать имена), создать ссылки на залитые фотки (2 минутки работы), и ссылки вставлять в контент, в нужное место.
Конечно, могут быть и десятки других вариантов работы
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113
Какое отношение имеет ПС к тому, как ты картинки на сервер заливаешь?
Ну я просто предполагаю. Потому что во втором случае картинка доступна через галерею + добавляются всякие дополнительные поля, таксономия и прочее. Вдруг и EXIF меняется)
Просто вставь картинку в пост через галерею и там всякие атрибуты добавляются в код. И возможно они как-то разными плагинами типа Yoast используются.
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 340
Благодарностей
298
Баллы
83
Просто вставь картинку в пост через галерею и там всякие атрибуты добавляются в код. И возможно они как-то разными плагинами типа Yoast используются.
Всё это ... ну, в общем, если надо, чтобы картинка стала в тамбнейл, то это делается автоматом плагинами, если что-то ещё,- то же самое, можно найти
Ты что руками что ли всё это делаешь?
Конечно. По одной картинке. Залил, потом записал ссылку... Шутю.
Вариантов много. Залить пачку картинок по ФТП и получить ссылки,- плёвое дело
Дальше, всё в коде html-шаблона прописывается, через переменные вставляются данные. В том числе и ссылки. Заранее приготавливаем заготовку, это смотря какая заготовка будет, насколько сложной. От нескольких минут - до бесконечности. Обычно 10 минут максимум. Всё остальное шабом Зенки
 
  • Спасибо
Реакции: konfuciy

GreenWay

Client
Регистрация
11.05.2012
Сообщения
423
Благодарностей
132
Баллы
43
Все картинки гружу при постинге на хостинги картиночные, в посте использую только ссылки на картинки
 

D1AVOL

Client
Регистрация
26.09.2015
Сообщения
88
Благодарностей
81
Баллы
18
создается по 2 одинаковых записи. чтоделать?
 

a10ne

Client
Регистрация
15.08.2016
Сообщения
75
Благодарностей
5
Баллы
8
Вот такая ошибка возникает. Поменял по минимуму, тайтлы, тексты и все
Выполнение действия CSharp OwnCode The underlying connection was closed: The connection was closed unexpectedly.
 

D1AVOL

Client
Регистрация
26.09.2015
Сообщения
88
Благодарностей
81
Баллы
18
Вот такая ошибка возникает. Поменял по минимуму, тайтлы, тексты и все
Выполнение действия CSharp OwnCode The underlying connection was closed: The connection was closed unexpectedly.
у меня тоже появлялась такая ошибка и еще создавалось по 2 записи. отснифал и запилил все на запросах, без библиотек)
 

seomiks

Client
Регистрация
13.09.2014
Сообщения
369
Благодарностей
124
Баллы
43
А мне приходиться грузить через веб так как в галерее нету ссылок на картинки, только их id. Вот так получилось http://domashnie-sovety.ru/ название домена не подходит, не хотелось покупать новый.
 

D1AVOL

Client
Регистрация
26.09.2015
Сообщения
88
Благодарностей
81
Баллы
18
А мне приходиться грузить через веб так как в галерее нету ссылок на картинки, только их id. Вот так получилось http://domashnie-sovety.ru/ название домена не подходит, не хотелось покупать новый.
я на запросах гружу картинки. и получаю id и прямую ссылку
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
423
Благодарностей
132
Баллы
43
С добавлением тегов и категорий разобрался.
Сначала создаем тег
Код:
using (var client = new WordPressClient())
{
    var termId = client.NewTerm(new Term
    {
        Name = "term test",
        Description = "term description",
        Slug = "term_test",
        Taxonomy = "post_tag"
    });
}
Потом добавляем их к посту.
Код:
Term[] t = new Term[2];//размер массива соответствует кол-ву добавляемых тегов
                {
                    var category = Convert.ToInt32(1);
                     t[0] = client.GetTerm("category",28);//id категории видим наведя на неё курсор
                    t[0] = client.GetTerm("post_tag",7);//id тега видим наведя на неё курсор либо юзаем termId
                    t[1] = client.GetTerm("post_tag",9);//id тега видим наведя на неё курсор либо юзаем termId
                };
                var post = new Post
                {
                    PostType = "post", // "post" или "page"
                    Title = "Заголовок",
                    Content = "Контент записи, <a> А тут html код)</a>",
                    PublishDateTime = DateTime.Now, // Дата публикации
                    Status = "publish", // "draft" или "publish" (draft это черновик)
                    Terms = t
                };
А вот с публикацией без попадания в расписание оказывается таймзону нужно было выставить на сайте.
Astraport спасибо, но в C# почти не разбираюсь (хотя пора бы...) Но как все это объединить в один код, если, например, теги в переменной tags (в строку через ,). Опять таки "размер массива соответствует кол-ву добавляемых тегов" - их же количество разное от поста к посту. Помоги пожалуйста.
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113
А, вроде понял.
PHP:
string tagsids = "4,6,12";
string [] tags = tagsids.Split(",");

Term[] t = new Term[tags.Length];
                {
                    var category = Convert.ToInt32(1);
                     t[0] = client.GetTerm("category",28);
                    for (int i = 0; i < tags.Length; i++) {
                        t[i+1] = client.GetTerm("post_tag",Convert.ToInt32(tags[i]));
                    }
                };
Примерно так, не проверял.
 
Последнее редактирование:
  • Спасибо
Реакции: GreenWay

durovino943

Новичок
Регистрация
20.03.2018
Сообщения
7
Благодарностей
1
Баллы
3
добрая ветка)))) посмеялся) впрочем как и с предыдущей, пока только внимательно две лишь с жадностью скушал)
думаю тут каждый для себя что-то понял, радует, что есть такие места где все открытые и добрые, старые псы молодых уму-разуму учат в ох***енной позитивной атмосфере, стал сильным - помоги подняться слабому (с альбома многоточие-2018-)..) если честно тут столько тем между строк лежит=) ths!
Ну так-то все придумано до тебя, я насчет велосипедов, но если вдруг когда-нибудь пойму что пишу ниче так сниппеты - заведу свою темку и буду в такой же манере аккуратненько заворачивать среди технической информации бесценные вкрапления опыта)
Атмосфера кстати как дома у мамы)
Спасибо большое!)
А как лучше, на каком языке кодят обычно для каких целей? ну вот пхп онли веб, с видосов Борисова учился, лет 10 назад, ООП конечно тема, три закона, инкапсуляция, наследование и полиморфизм до сих пор для меня нерушимы в любых началах (даже в жизни применяю их) которая кстати потрепала по городам и так получилось что уходил с оффлайна, лет на 5 (работал там сам, и был один кон программистом на закрытом атомном заводе, там все на мелкософте, лицензионные фотошопы и иллюстраторы в конструкторских отделах, видел на бумагах какие мелкософту суммы государство перечисляет за ПО, это около полляма в месяц точно, в инфраструктуре завода, специальные спецсервера считали активации юзеров и крутил счетчик, ну ребята в мелкософте серьезные думаю и ну их нафиг еще)) а сейчас вот заново, с утроенной скоростью впитываю все, учусь всему заново.
С# похож на ПХП кстати, с ним заочно давно, но с зенкой все стало поближе) скажите, а для каких целей обычно какие средства используют? ну чтоб "зубной щеткой" плац не драить) помню ходил в юного техника малым, там на Пентиумах бейсик и паскаль изучали было клево)) а сейчас... тоже все это прет)))
на какой язык упор делать лучше? если смотреть в веб-мастера? Всегда веб нравился кстати, скоростью наверно, тем что сближает)
 
Последнее редактирование:

one

Client
Регистрация
22.09.2015
Сообщения
6 790
Благодарностей
1 264
Баллы
113
Друзья, кто этот человек? О чем он говорит? Откуда такие слов он мог набраться? Почему с маленькой буквы абзац начинает, знаки препинания не использует? Гений?
 

durovino943

Новичок
Регистрация
20.03.2018
Сообщения
7
Благодарностей
1
Баллы
3
не гений конечно) но и не глупый) ну я так то вам постараюсь быть нужным и превносить лишь положительные эмоции))

к слову о серьезных ребятах с майкрософта, полез за дотнетом там дядя лысый охранял сайт))

не, ну похож же на зэка да?)))
 

Вложения

vesb

Client
Регистрация
13.03.2010
Сообщения
139
Благодарностей
18
Баллы
18
Тема хоть и старенькая, но актуальная. Но к сожалению после всех танцев с бубнами так и не завелась.
В логе только это
Выполнение действия CSharp OwnCode Not Found
Сбойное действие: Добавляем запись
"Что бы экшн выполнялся без сбоя надо просто переменную указать в которую будет результат записываться." - Это тоже делал, не помогло.
Помогите советом?
Тоже такая же ошибка. Подскажи, плиз как удалось решить.

 

catol

Client
Регистрация
05.07.2012
Сообщения
277
Благодарностей
98
Баллы
28
Пересобрал рабочую библиотеку WordPressSharp v 1.1.0

Тестировал на версии ZP 5.22.0.1
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: yourmind

catol

Client
Регистрация
05.07.2012
Сообщения
277
Благодарностей
98
Баллы
28
Добавляем Метку в пост, если она не существует создаём и добавляем!

Код:
var client = new WordPressClient(wordPressSiteConfig);

var t = new Term() { Taxonomy = "post_tag", Name = "News" }; // Это тег который мы ищем в списке тегов и если не находим его то создаём.

var terms = client.GetTerms("post_tag", new TermFilter() { Search = t.Name }); // Проверяем, создан ли тег

if(terms == null) {
    t.Id  = client.NewTerm(t);
} else {
    foreach(var term in terms) {
            t.Id = term.Id; //Берём первый тег который нашёл фильтр.
            break;
        }
    }
    if(t.Id == null) {
        t.Id = client.NewTerm(t); //Создаём новый тег, если ничего не нашли
    }

Post post = new Post
{
    Title = "hello worl323",
    PostType = "post",
    PublishDateTime = DateTime.Now,
    Content = "hello world",
    Terms = new Term[] { t },
    Status = "publish"
};

int id =  Convert.ToInt32(client.NewPost(post));

return id + ";" + client.GetPost(id).Link + ";" + client.GetPost(id).Title + ";" + client.GetPost(id).Status;
 
Последнее редактирование:
  • Спасибо
Реакции: vesb и yourmind

yourmind

Client
Регистрация
13.09.2010
Сообщения
245
Благодарностей
21
Баллы
18

catol

Client
Регистрация
05.07.2012
Сообщения
277
Благодарностей
98
Баллы
28
Я просто в настройках WP указываю нужную категорию по умолчанию. И всё. Я только метки добавляю разные (Беру фразы из ключа.)
 

abcman

Client
Регистрация
13.10.2010
Сообщения
33
Благодарностей
4
Баллы
8
Добрый день, подскажи пожалуйста каким образом можно указывать в C# запросе одновременно:
  • добавление нескольких категорий, если нет то создавать (на крайний случай буду заранее создавать)
  • добавление нескольких меток, если нет то создавать (на крайний случай буду заранее создавать)
  • выбирать миниатюру
Выше уже предлагалось несколько методов, но и библиотека обновилась и некоторые просто непонятны.
 

Artamosa

Client
Регистрация
31.01.2016
Сообщения
59
Благодарностей
4
Баллы
8
Пару вопросов на засыпку:
1) А можно ли добавлять с помощью библиотеки title и description в All in One SEO Pack?
2) Можно ли как-то постить контент на разных языках за один запрос (при использовании WPML)?
 

Lex

Новичок
Регистрация
17.01.2020
Сообщения
7
Благодарностей
1
Баллы
3
Radzhab , подскажи, плз, как я могу удалить пост или страницу без перемещения в корзину?
Например тут увидел возможность добавлять к wp_delete_post дополнительный аругмент force_delete (который удаляет пост без корзины, PHP...).
Доступна ли такая мозможность, используя wordPressSiteConfig ? Или как можно реализовать такое в C# ?

прошу формучан также помочь, если есть такой опыт).

Пока что пост красиво перемещается в корзину таким образом :


C#:
WordPressSiteConfig wordPressSiteConfig = new WordPressSiteConfig();
            wordPressSiteConfig.BaseUrl = "http://site.com/xmlrpc.php"; // Путь к xmlrpc
            wordPressSiteConfig.Username = "log";   // Логин
            wordPressSiteConfig.Password = "pass"; // Пароль
            wordPressSiteConfig.BlogId = 1;
            
    using (var client = new WordPressClient(wordPressSiteConfig))
    {
        client.DeletePost(2);
    }


Спасибо.
 

DarkSky

Client
Регистрация
10.01.2019
Сообщения
68
Благодарностей
7
Баллы
8
Помогите парни, не как не могу загружать изображение, без кода на изображение все работает.

// Настройки
WordPressSiteConfig wordPressSiteConfig = new WordPressSiteConfig();
wordPressSiteConfig.BaseUrl = "http://site/xmlrpc.php"; // Путь к xmlrpc
wordPressSiteConfig.Username = "S4s"; // Логин
wordPressSiteConfig.Password = "S4"; // Пароль
wordPressSiteConfig.BlogId = 1;

using (var client = new WordPressClient(wordPressSiteConfig))
{
var post = new Post
{
PostType = "post", // "post" или "page"
Title = "post name 1",
Content = "Контент записи, <p> А тут html код)</p>",
PublishDateTime = DateTime.Now, // Дата публикации
Status = "publish" // "draft" или "publish" (draft это черновик)
};
string url = "Link na IMG";
var featureImage = Data.CreateFromUrl(url);
post.FeaturedImageId = client.UploadFile(featureImage).Id;
var id = Convert.ToInt32(client.NewPost(post)); // ID поста
}
 
Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113
Может пермишенсы не установлены для загрузки картинки. У меня этот код в части картинки работает.
 

DarkSky

Client
Регистрация
10.01.2019
Сообщения
68
Благодарностей
7
Баллы
8
я на папку установил Uploads 777 и внутри тоже но всьоравно не получается загружать :( Помогите кто может Plz :-)
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113
Ещё можно изменить пермишенсы самого файла xml-rpc.php дать ему права админа, если он под рутом и наоборот.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)