-
Notifications
You must be signed in to change notification settings - Fork 0
/
register-custom-data.js
51 lines (42 loc) · 1.28 KB
/
register-custom-data.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* global YoastSEO, __yoastExtra */
class MyCustomDataPlugin {
constructor() {
// Ensure YoastSEO.js is present and can access the necessary features.
if (
typeof YoastSEO === "undefined" ||
typeof YoastSEO.analysis === "undefined" ||
typeof YoastSEO.analysis.worker === "undefined"
) {
return;
}
YoastSEO.app.registerPlugin("MyCustomDataPlugin", { status: "ready" });
this.registerModifications();
}
registerModifications() {
const callback = this.addContent.bind(this);
// Ensure that the additional data is being seen as a modification to the content.
YoastSEO.app.registerModification(
"content",
callback,
"MyCustomDataPlugin",
10
);
}
addContent(data) {
if (__yoastExtra.page_type === "product_cat") {
let extraData = __yoastExtra.woo_category || {};
let catHeader = extraData.top_content || "";
let catFooter = extraData.bottom_content || "";
data += catHeader ? ` ${catHeader}` : "";
data += catFooter ? ` ${catFooter}` : "";
}
return data;
}
}
if (typeof YoastSEO !== "undefined" && typeof YoastSEO.app !== "undefined") {
new MyCustomDataPlugin();
} else {
jQuery(window).on("YoastSEO:ready", function () {
new MyCustomDataPlugin();
});
}