diff --git a/packages/nodes-base/credentials/WordpressApi.credentials.ts b/packages/nodes-base/credentials/WordpressApi.credentials.ts
index 5d8e4174ee..ade71b8582 100644
--- a/packages/nodes-base/credentials/WordpressApi.credentials.ts
+++ b/packages/nodes-base/credentials/WordpressApi.credentials.ts
@@ -1,4 +1,6 @@
import {
+ IAuthenticateGeneric,
+ ICredentialTestRequest,
ICredentialType,
INodeProperties,
} from 'n8n-workflow';
@@ -31,4 +33,20 @@ export class WordpressApi implements ICredentialType {
placeholder: 'https://example.com',
},
];
+ authenticate: IAuthenticateGeneric = {
+ type: 'generic',
+ properties: {
+ auth: {
+ username: '={{$credentials.username}}',
+ password: '={{$credentials.password}}',
+ },
+ },
+};
+ test: ICredentialTestRequest = {
+ request: {
+ baseURL: '={{$credentials?.url}}/wp-json/wp/v2',
+ url: '/users',
+ method: 'GET',
+ },
+ };
}
diff --git a/packages/nodes-base/nodes/Wordpress/GenericFunctions.ts b/packages/nodes-base/nodes/Wordpress/GenericFunctions.ts
index ad74683126..145e482247 100644
--- a/packages/nodes-base/nodes/Wordpress/GenericFunctions.ts
+++ b/packages/nodes-base/nodes/Wordpress/GenericFunctions.ts
@@ -21,10 +21,6 @@ export async function wordpressApiRequest(this: IExecuteFunctions | IExecuteSing
'Content-Type': 'application/json',
'User-Agent': 'n8n',
},
- auth: {
- user: credentials!.username as string,
- password: credentials!.password as string,
- },
method,
qs,
body,
@@ -36,7 +32,8 @@ export async function wordpressApiRequest(this: IExecuteFunctions | IExecuteSing
delete options.body;
}
try {
- return await this.helpers.request!(options);
+ const credentialType = 'wordpressApi';
+ return this.helpers.requestWithAuthentication.call(this, credentialType, options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
}
diff --git a/packages/nodes-base/nodes/Wordpress/PostDescription.ts b/packages/nodes-base/nodes/Wordpress/PostDescription.ts
index 3b48b92b10..2a9fee87d2 100644
--- a/packages/nodes-base/nodes/Wordpress/PostDescription.ts
+++ b/packages/nodes-base/nodes/Wordpress/PostDescription.ts
@@ -257,6 +257,72 @@ export const postFields: INodeProperties[] = [
default: [],
description: 'The terms assigned to the object in the post_tag taxonomy. Choose from the list, or specify IDs using an expression.',
},
+ {
+ displayName: 'Template',
+ name: 'postTemplate',
+ type: 'fixedCollection',
+ default: {},
+ typeOptions: {
+ multipleValues: false,
+ },
+ options: [
+ {
+ displayName: 'Values',
+ name: 'values',
+ values: [
+ {
+ displayName: 'Elementor Template',
+ name: 'elementor',
+ type: 'boolean',
+ default: true,
+ description: 'Whether site uses elementor page builder',
+ },
+ {
+ displayName: 'Template',
+ name: 'template',
+ type: 'string',
+ default: '',
+ description: 'The theme file to use',
+ displayOptions: {
+ show: {
+ elementor: [ false ],
+ },
+ },
+ },
+ {
+ displayName: 'Template',
+ name: 'template',
+ type: 'options',
+ options: [
+ {
+ name: 'Standard',
+ value: '',
+ },
+ {
+ name: 'Elementor Canvas',
+ value: 'elementor_canvas',
+ },
+ {
+ name: 'Elementor Header Footer',
+ value: 'elementor_header_footer',
+ },
+ {
+ name: 'Elementor Theme',
+ value: 'elementor_theme',
+ },
+ ],
+ default: '',
+ description: 'The Elementor template to use',
+ displayOptions: {
+ show: {
+ elementor: [ true ],
+ },
+ },
+ },
+ ],
+ },
+ ],
+ },
],
},
/* -------------------------------------------------------------------------- */
@@ -477,6 +543,72 @@ export const postFields: INodeProperties[] = [
default: [],
description: 'The terms assigned to the object in the post_tag taxonomy. Choose from the list, or specify IDs using an expression.',
},
+ {
+ displayName: 'Template',
+ name: 'postTemplate',
+ type: 'fixedCollection',
+ default: {},
+ typeOptions: {
+ multipleValues: false,
+ },
+ options: [
+ {
+ displayName: 'Values',
+ name: 'values',
+ values: [
+ {
+ displayName: 'Elementor Template',
+ name: 'elementor',
+ type: 'boolean',
+ default: true,
+ description: 'Whether site uses elementor page builder',
+ },
+ {
+ displayName: 'Template',
+ name: 'template',
+ type: 'string',
+ default: '',
+ description: 'The theme file to use',
+ displayOptions: {
+ show: {
+ elementor: [ false ],
+ },
+ },
+ },
+ {
+ displayName: 'Template',
+ name: 'template',
+ type: 'options',
+ options: [
+ {
+ name: 'Standard',
+ value: '',
+ },
+ {
+ name: 'Elementor Canvas',
+ value: 'elementor_canvas',
+ },
+ {
+ name: 'Elementor Header Footer',
+ value: 'elementor_header_footer',
+ },
+ {
+ name: 'Elementor Theme',
+ value: 'elementor_theme',
+ },
+ ],
+ default: '',
+ description: 'The Elementor template to use',
+ displayOptions: {
+ show: {
+ elementor: [ true ],
+ },
+ },
+ },
+ ],
+ },
+ ],
+ },
],
},
/* -------------------------------------------------------------------------- */
diff --git a/packages/nodes-base/nodes/Wordpress/PostInterface.ts b/packages/nodes-base/nodes/Wordpress/PostInterface.ts
index e810c11cf8..995ed6aec6 100644
--- a/packages/nodes-base/nodes/Wordpress/PostInterface.ts
+++ b/packages/nodes-base/nodes/Wordpress/PostInterface.ts
@@ -11,6 +11,7 @@ export interface IPost {
ping_status?: string;
format?: string;
sticky?: boolean;
+ template?: string;
categories?: number[];
tags?: number[];
}
diff --git a/packages/nodes-base/nodes/Wordpress/Wordpress.node.ts b/packages/nodes-base/nodes/Wordpress/Wordpress.node.ts
index 691847d986..a9fb305b50 100644
--- a/packages/nodes-base/nodes/Wordpress/Wordpress.node.ts
+++ b/packages/nodes-base/nodes/Wordpress/Wordpress.node.ts
@@ -32,8 +32,7 @@ export class Wordpress implements INodeType {
description: INodeTypeDescription = {
displayName: 'Wordpress',
name: 'wordpress',
- // eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
- icon: 'file:wordpress.png',
+ icon: 'file:wordpress.svg',
group: ['output'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
@@ -170,6 +169,9 @@ export class Wordpress implements INodeType {
if (additionalFields.sticky) {
body.sticky = additionalFields.sticky as boolean;
}
+ if (additionalFields.postTemplate) {
+ body.template = this.getNodeParameter('additionalFields.postTemplate.values.template', i, '') as string;
+ }
if (additionalFields.categories) {
body.categories = additionalFields.categories as number[];
}
@@ -215,6 +217,9 @@ export class Wordpress implements INodeType {
if (updateFields.sticky) {
body.sticky = updateFields.sticky as boolean;
}
+ if (updateFields.postTemplate) {
+ body.template = this.getNodeParameter('updateFields.postTemplate.values.template', i, '') as string;
+ }
if (updateFields.categories) {
body.categories = updateFields.categories as number[];
}
diff --git a/packages/nodes-base/nodes/Wordpress/wordpress.png b/packages/nodes-base/nodes/Wordpress/wordpress.png
deleted file mode 100644
index 3da800932d..0000000000
Binary files a/packages/nodes-base/nodes/Wordpress/wordpress.png and /dev/null differ
diff --git a/packages/nodes-base/nodes/Wordpress/wordpress.svg b/packages/nodes-base/nodes/Wordpress/wordpress.svg
new file mode 100644
index 0000000000..1ec64c05f7
--- /dev/null
+++ b/packages/nodes-base/nodes/Wordpress/wordpress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file