Duplicate RFG and Related Posts using Yoast Duplicate Post
LnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iMDE0ZjNiMDc3YWZiMGM2OGVlNDg2NWY2NjlhMjAyNTEiXSB7IGJvcmRlci1yYWRpdXM6IDNweDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCggOTBkZWcscmdiYSggMCwgMTIwLCAxOTAsIDEgKSxyZ2JhKCAyMSwgNzksIDE1OCwgMSApICk7cGFkZGluZzogMjVweDsgfSAudGItY29udGFpbmVyW2RhdGEtdG9vbHNldC1ibG9ja3MtY29udGFpbmVyPSIwMTRmM2IwNzdhZmIwYzY4ZWU0ODY1ZjY2OWEyMDI1MSJdIHAgeyBjb2xvcjogcmdiYSggMjU1LCAyNTUsIDI1NSwgMSApOyB9IC50Yi1idXR0b25bZGF0YS10b29sc2V0LWJsb2Nrcy1idXR0b249Ijc0MDNmNjdjNTQwY2IyZTZlMjNkMTc3ZWY1MTdkMjE5Il0geyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gLnRiLWJ1dHRvbltkYXRhLXRvb2xzZXQtYmxvY2tzLWJ1dHRvbj0iNzQwM2Y2N2M1NDBjYjJlNmUyM2QxNzdlZjUxN2QyMTkiXSAudGItYnV0dG9uX19saW5rIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSggMjM3LCAxMjEsIDYyLCAxICk7bWFyZ2luLXRvcDogMjBweDtib3gtc2hhZG93OiA1cHggNXB4IDEwcHggMCByZ2JhKCAwLCAwLCAwLCAwLjUgKTsgfSAudGItYnV0dG9uW2RhdGEtdG9vbHNldC1ibG9ja3MtYnV0dG9uPSI3NDAzZjY3YzU0MGNiMmU2ZTIzZDE3N2VmNTE3ZDIxOSJdIC50Yi1idXR0b25fX2ljb24geyBmb250LWZhbWlseTogZGFzaGljb25zOyB9IGgyLnRiLWhlYWRpbmdbZGF0YS10b29sc2V0LWJsb2Nrcy1oZWFkaW5nPSI0ZjQ1MzNiMGJhNzUwMjA3YTQ0ZDUxZDhmYjlmNzQ4ZCJdICB7IGNvbG9yOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAxICk7IH0gaDIudGItaGVhZGluZ1tkYXRhLXRvb2xzZXQtYmxvY2tzLWhlYWRpbmc9IjRmNDUzM2IwYmE3NTAyMDdhNDRkNTFkOGZiOWY3NDhkIl0gYSAgeyBjb2xvcjogcmdiYSggMjU1LCAyNTUsIDI1NSwgMSApO3RleHQtZGVjb3JhdGlvbjogbm9uZTsgfSAgLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSI1YWMyMTg0YjhjOTgwMzEzNjFkMzlhYmEzMzFiYjJkZiJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMC4zOGZyKSBtaW5tYXgoMCwgMC42MmZyKTtncmlkLWF1dG8tZmxvdzogcm93IH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSI1YWMyMTg0YjhjOTgwMzEzNjFkMzlhYmEzMzFiYjJkZiJdID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDJuICsgMSkgeyBncmlkLWNvbHVtbjogMSB9IC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iNWFjMjE4NGI4Yzk4MDMxMzYxZDM5YWJhMzMxYmIyZGYiXSA+IC50Yi1ncmlkLWNvbHVtbjpudGgtb2YtdHlwZSgybiArIDIpIHsgZ3JpZC1jb2x1bW46IDIgfSAudGItZ3JpZC1jb2x1bW5bZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbj0iNzZlZjYxMDMxY2MxM2Q1MGM0MGRkNzgyM2JkOGE3OWIiXSB7IGRpc3BsYXk6IGZsZXg7IH0gLnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iZmYwYmY1NzdkOWI3ZGRiNWJjYjI3Yjg1Njg2M2IyZjkiXSB7IHBhZGRpbmc6IDI1cHggMjVweCAyNXB4IDEycHg7IH0gLnRiLWZpZWxkcy1hbmQtdGV4dFtkYXRhLXRvb2xzZXQtYmxvY2tzLWZpZWxkcy1hbmQtdGV4dD0iYjk0N2U5NTI2ZWFjOGRmNWRiZjQ2MzhiNzliNTUxMTUiXSB7IG1hcmdpbi10b3A6IC0xMHB4O3BhZGRpbmctdG9wOiAyNXB4O3BhZGRpbmctYm90dG9tOiAyNXB4O3BhZGRpbmctbGVmdDogMjVweDtib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSggMCwgMCwgMCwgMSApO2JvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSggMCwgMCwgMCwgMSApO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsgfSAudGItZ3JpZC1jb2x1bW5bZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbj0iNjQwY2E5MTk4ZDRjNzU5YzdkMDFmMjdlYjlmNTA3NTkiXSB7IGRpc3BsYXk6IGZsZXg7IH0gLnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iNTAyZTEwMjgzYWQ3ZTAzZDllNzQ2ZjQxYzE2NjAzOGEiXSB7IHBhZGRpbmc6IDI1cHggMCAyNXB4IDI1cHg7IH0gLnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iNTAyZTEwMjgzYWQ3ZTAzZDllNzQ2ZjQxYzE2NjAzOGEiXSA+IC50Yi1jb250YWluZXItaW5uZXIgeyBtYXgtd2lkdGg6IDkwdnc7IH0gLnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iMTFlYjM2YzgxMTIyMzJjOGI0OTA3YzJlZmViMTg5NDIiXSB7IGJhY2tncm91bmQ6IHJnYmEoIDI0NywgMjQ5LCAyNTAsIDEgKTtwYWRkaW5nOiAyNXB4O21hcmdpbi10b3A6IDM1cHg7bWFyZ2luLWxlZnQ6IDI1cHg7Ym94LXNoYWRvdzogMXB4IDFweCAxMHB4IDAgcmdiYSggMCwgMCwgMCwgMC41ICk7IH0gLnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iMTFlYjM2YzgxMTIyMzJjOGI0OTA3YzJlZmViMTg5NDIiXSA+IC50Yi1jb250YWluZXItaW5uZXIgeyBtYXgtd2lkdGg6IDkwdnc7IH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSJlOGM5ZWI2NzdlZjc2N2JhNGI0YjQxYjc2MTdlMDk4MyJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMC42NjVmcikgbWlubWF4KDAsIDAuMzM1ZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImU4YzllYjY3N2VmNzY3YmE0YjRiNDFiNzYxN2UwOTgzIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSJlOGM5ZWI2NzdlZjc2N2JhNGI0YjQxYjc2MTdlMDk4MyJdID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDJuICsgMikgeyBncmlkLWNvbHVtbjogMiB9IC50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSJlYTJkM2FjODc1ZmU1OTBhOTVjMGVkMGRjNThkODk5OCJdIHsgZGlzcGxheTogZmxleDsgfSAudGItYnV0dG9uW2RhdGEtdG9vbHNldC1ibG9ja3MtYnV0dG9uPSI3ZmE3NmUxYmY3MDZhZWNlYTVkYjkwYWZiMzY2ZjM1YyJdIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH0gLnRiLWJ1dHRvbltkYXRhLXRvb2xzZXQtYmxvY2tzLWJ1dHRvbj0iN2ZhNzZlMWJmNzA2YWVjZWE1ZGI5MGFmYjM2NmYzNWMiXSAudGItYnV0dG9uX19saW5rIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSggMjU1LCAyNTUsIDI1NSwgMSApO2JvcmRlci1yYWRpdXM6IDEwMHB4O2NvbG9yOiByZ2JhKCAyLCAxMDUsIDE3MiwgMSApO3BhZGRpbmc6IDNweCA2cHggM3B4IDZweDtib3gtc2hhZG93OiA1cHggNXB4IDEwcHggMCByZ2JhKCAwLCAwLCAwLCAwLjUgKTtib3JkZXI6IDNweCBzb2xpZCByZ2JhKCAyLCAxMDUsIDE3MiwgMSApO2NvbG9yOiByZ2JhKCAyLCAxMDUsIDE3MiwgMSApOyB9IC50Yi1idXR0b25bZGF0YS10b29sc2V0LWJsb2Nrcy1idXR0b249IjdmYTc2ZTFiZjcwNmFlY2VhNWRiOTBhZmIzNjZmMzVjIl0gLnRiLWJ1dHRvbl9fbGluazpob3ZlciB7IHBhZGRpbmc6IDZweCA5cHggNnB4IDlweDttYXJnaW4tdG9wOiAtNnB4OyB9IC50Yi1idXR0b25bZGF0YS10b29sc2V0LWJsb2Nrcy1idXR0b249IjdmYTc2ZTFiZjcwNmFlY2VhNWRiOTBhZmIzNjZmMzVjIl0gLnRiLWJ1dHRvbl9faWNvbiB7IGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTsgfSAudGItYnV0dG9uW2RhdGEtdG9vbHNldC1ibG9ja3MtYnV0dG9uPSI3ZmE3NmUxYmY3MDZhZWNlYTVkYjkwYWZiMzY2ZjM1YyJdIC50Yi1idXR0b25fX2ljb246OmJlZm9yZSB7IGNvbnRlbnQ6ICdcZjA2Nic7IH0gIGgzLnRiLWhlYWRpbmdbZGF0YS10b29sc2V0LWJsb2Nrcy1oZWFkaW5nPSJhYTFlMmQ2MTZlN2EzZjNkNjIwZjNmYjM5ZDlhODlmNiJdIGEgIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9IC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iMWYwMmQ1MDEyYzY0OTBlMTFlYTQ0NjFjODk2MzcxMDUiXSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDAuMTUzM2ZyKSBtaW5tYXgoMCwgMC40MjMzZnIpIG1pbm1heCgwLCAwLjQyMzNmcik7Z3JpZC1jb2x1bW4tZ2FwOiAwcHg7Z3JpZC1hdXRvLWZsb3c6IHJvdyB9IC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iMWYwMmQ1MDEyYzY0OTBlMTFlYTQ0NjFjODk2MzcxMDUiXSA+IC50Yi1ncmlkLWNvbHVtbjpudGgtb2YtdHlwZSgzbiArIDEpIHsgZ3JpZC1jb2x1bW46IDEgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjFmMDJkNTAxMmM2NDkwZTExZWE0NDYxYzg5NjM3MTA1Il0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoM24gKyAyKSB7IGdyaWQtY29sdW1uOiAyIH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSIxZjAyZDUwMTJjNjQ5MGUxMWVhNDQ2MWM4OTYzNzEwNSJdID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDNuICsgMykgeyBncmlkLWNvbHVtbjogMyB9IC50Yi1maWVsZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWZpZWxkPSIyMDU0NjlmZmEzMDczMWNiZjg1YmI2OTIwM2NmYWU2ZSJdIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH0gIC50Yi1maWVsZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWZpZWxkPSIyMDU0NjlmZmEzMDczMWNiZjg1YmI2OTIwM2NmYWU2ZSJdIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0gIC50Yi1maWVsZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWZpZWxkPSIwMWY1YjMwMWVjYjI1NWE4ZmRmOTcyNjM1NmUxMmE5OSJdIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0gLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49IjMwMzRmYmU4ODZjMTEwNTRlOTViNDZiMDlkM2U0MTEyIl0geyBkaXNwbGF5OiBmbGV4OyB9IFtkYXRhLXRvb2xzZXQtYmxvY2tzLWltYWdlPSIyZmExOTA3NzAxZTQyOTdlNmYzODQ3ZGJlMjBlMTk2ZSJdIHsgd2lkdGg6IDMycHg7bWF4LXdpZHRoOiAxMDAlOyB9IFtkYXRhLXRvb2xzZXQtYmxvY2tzLWltYWdlPSIyZmExOTA3NzAxZTQyOTdlNmYzODQ3ZGJlMjBlMTk2ZSJdIGltZyB7IGJvcmRlci1yYWRpdXM6IDY0cHg7aGVpZ2h0OiAzMnB4OyB9IC50Yi1idXR0b25bZGF0YS10b29sc2V0LWJsb2Nrcy1idXR0b249ImQ5NWZjZDhiZjBmYWFiNWNkOTI2ZWRiMzczZDQ4ZWZkIl0geyB0ZXh0LWFsaWduOiBsZWZ0OyB9IC50Yi1idXR0b25bZGF0YS10b29sc2V0LWJsb2Nrcy1idXR0b249ImQ5NWZjZDhiZjBmYWFiNWNkOTI2ZWRiMzczZDQ4ZWZkIl0gLnRiLWJ1dHRvbl9fbGluayB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoIDI1NSwgMjU1LCAyNTUsIDEgKTtib3JkZXItcmFkaXVzOiAxMDBweDtjb2xvcjogcmdiYSggMiwgMTA1LCAxNzIsIDEgKTtwYWRkaW5nOiAzcHggNnB4IDNweCA2cHg7Ym94LXNoYWRvdzogNXB4IDVweCAxMHB4IDAgcmdiYSggMCwgMCwgMCwgMC41ICk7Ym9yZGVyOiAzcHggc29saWQgcmdiYSggMiwgMTA1LCAxNzIsIDEgKTtjb2xvcjogcmdiYSggMiwgMTA1LCAxNzIsIDEgKTsgfSAudGItYnV0dG9uW2RhdGEtdG9vbHNldC1ibG9ja3MtYnV0dG9uPSJkOTVmY2Q4YmYwZmFhYjVjZDkyNmVkYjM3M2Q0OGVmZCJdIC50Yi1idXR0b25fX2xpbms6aG92ZXIgeyBwYWRkaW5nOiA2cHggOXB4IDZweCA5cHg7bWFyZ2luLXRvcDogLTZweDsgfSAudGItYnV0dG9uW2RhdGEtdG9vbHNldC1ibG9ja3MtYnV0dG9uPSJkOTVmY2Q4YmYwZmFhYjVjZDkyNmVkYjM3M2Q0OGVmZCJdIC50Yi1idXR0b25fX2ljb24geyBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7IH0gLnRiLWJ1dHRvbltkYXRhLXRvb2xzZXQtYmxvY2tzLWJ1dHRvbj0iZDk1ZmNkOGJmMGZhYWI1Y2Q5MjZlZGIzNzNkNDhlZmQiXSAudGItYnV0dG9uX19pY29uOjpiZWZvcmUgeyBjb250ZW50OiAnXGYwNjUnOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHsgaDIudGItaGVhZGluZ1tkYXRhLXRvb2xzZXQtYmxvY2tzLWhlYWRpbmc9IjRmNDUzM2IwYmE3NTAyMDdhNDRkNTFkOGZiOWY3NDhkIl0gYSAgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0gIC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iNWFjMjE4NGI4Yzk4MDMxMzYxZDM5YWJhMzMxYmIyZGYiXSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDAuNWZyKSBtaW5tYXgoMCwgMC41ZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjVhYzIxODRiOGM5ODAzMTM2MWQzOWFiYTMzMWJiMmRmIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSI1YWMyMTg0YjhjOTgwMzEzNjFkMzlhYmEzMzFiYjJkZiJdID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDJuICsgMikgeyBncmlkLWNvbHVtbjogMiB9IC50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSI3NmVmNjEwMzFjYzEzZDUwYzQwZGQ3ODIzYmQ4YTc5YiJdIHsgZGlzcGxheTogZmxleDsgfSAudGItZ3JpZC1jb2x1bW5bZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbj0iNjQwY2E5MTk4ZDRjNzU5YzdkMDFmMjdlYjlmNTA3NTkiXSB7IGRpc3BsYXk6IGZsZXg7IH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSJlOGM5ZWI2NzdlZjc2N2JhNGI0YjQxYjc2MTdlMDk4MyJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMC41ZnIpIG1pbm1heCgwLCAwLjVmcik7Z3JpZC1hdXRvLWZsb3c6IHJvdyB9IC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iZThjOWViNjc3ZWY3NjdiYTRiNGI0MWI3NjE3ZTA5ODMiXSA+IC50Yi1ncmlkLWNvbHVtbjpudGgtb2YtdHlwZSgybiArIDEpIHsgZ3JpZC1jb2x1bW46IDEgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImU4YzllYjY3N2VmNzY3YmE0YjRiNDFiNzYxN2UwOTgzIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAyKSB7IGdyaWQtY29sdW1uOiAyIH0gLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49ImVhMmQzYWM4NzVmZTU5MGE5NWMwZWQwZGM1OGQ4OTk4Il0geyBkaXNwbGF5OiBmbGV4OyB9ICAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjFmMDJkNTAxMmM2NDkwZTExZWE0NDYxYzg5NjM3MTA1Il0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAwLjMzMzNmcikgbWlubWF4KDAsIDAuMzMzM2ZyKSBtaW5tYXgoMCwgMC4zMzMzZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjFmMDJkNTAxMmM2NDkwZTExZWE0NDYxYzg5NjM3MTA1Il0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoM24gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSIxZjAyZDUwMTJjNjQ5MGUxMWVhNDQ2MWM4OTYzNzEwNSJdID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDNuICsgMikgeyBncmlkLWNvbHVtbjogMiB9IC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iMWYwMmQ1MDEyYzY0OTBlMTFlYTQ0NjFjODk2MzcxMDUiXSA+IC50Yi1ncmlkLWNvbHVtbjpudGgtb2YtdHlwZSgzbiArIDMpIHsgZ3JpZC1jb2x1bW46IDMgfSAgIC50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSIzMDM0ZmJlODg2YzExMDU0ZTk1YjQ2YjA5ZDNlNDExMiJdIHsgZGlzcGxheTogZmxleDsgfSAgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7IGgyLnRiLWhlYWRpbmdbZGF0YS10b29sc2V0LWJsb2Nrcy1oZWFkaW5nPSI0ZjQ1MzNiMGJhNzUwMjA3YTQ0ZDUxZDhmYjlmNzQ4ZCJdIGEgIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9ICAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjVhYzIxODRiOGM5ODAzMTM2MWQzOWFiYTMzMWJiMmRmIl0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjVhYzIxODRiOGM5ODAzMTM2MWQzOWFiYTMzMWJiMmRmIl0gID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDFuKzEpIHsgZ3JpZC1jb2x1bW46IDEgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjVhYzIxODRiOGM5ODAzMTM2MWQzOWFiYTMzMWJiMmRmIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMSkgeyBvcmRlcjogMiB9IC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iNWFjMjE4NGI4Yzk4MDMxMzYxZDM5YWJhMzMxYmIyZGYiXSA+IC50Yi1ncmlkLWNvbHVtbjpudGgtb2YtdHlwZSgyKSB7IG9yZGVyOiAxIH0gLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49Ijc2ZWY2MTAzMWNjMTNkNTBjNDBkZDc4MjNiZDhhNzliIl0geyBkaXNwbGF5OiBmbGV4OyB9IC50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSI2NDBjYTkxOThkNGM3NTljN2QwMWYyN2ViOWY1MDc1OSJdIHsgZGlzcGxheTogZmxleDsgfSAudGItY29udGFpbmVyW2RhdGEtdG9vbHNldC1ibG9ja3MtY29udGFpbmVyPSI1MDJlMTAyODNhZDdlMDNkOWU3NDZmNDFjMTY2MDM4YSJdIHsgcGFkZGluZy1yaWdodDogMjVweDsgfSAudGItY29udGFpbmVyW2RhdGEtdG9vbHNldC1ibG9ja3MtY29udGFpbmVyPSIxMWViMzZjODExMjIzMmM4YjQ5MDdjMmVmZWIxODk0MiJdIHsgcGFkZGluZzogMTJweCAxMnB4IDAgMTJweDttYXJnaW46IDAgMTJweCA1MHB4IDEycHg7IH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSJlOGM5ZWI2NzdlZjc2N2JhNGI0YjQxYjc2MTdlMDk4MyJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtncmlkLWF1dG8tZmxvdzogcm93IH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSJlOGM5ZWI2NzdlZjc2N2JhNGI0YjQxYjc2MTdlMDk4MyJdICA+IC50Yi1ncmlkLWNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSB7IGdyaWQtY29sdW1uOiAxIH0gLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49ImVhMmQzYWM4NzVmZTU5MGE5NWMwZWQwZGM1OGQ4OTk4Il0geyBkaXNwbGF5OiBub25lOyB9ICAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjFmMDJkNTAxMmM2NDkwZTExZWE0NDYxYzg5NjM3MTA1Il0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAwLjMzMzMzMzMzMzMzMzMzZnIpIG1pbm1heCgwLCAwLjMzMzMzMzMzMzMzMzMzZnIpIG1pbm1heCgwLCAwLjMzMzMzMzMzMzMzMzMzZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjFmMDJkNTAxMmM2NDkwZTExZWE0NDYxYzg5NjM3MTA1Il0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoM24gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSIxZjAyZDUwMTJjNjQ5MGUxMWVhNDQ2MWM4OTYzNzEwNSJdID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDNuICsgMikgeyBncmlkLWNvbHVtbjogMiB9IC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iMWYwMmQ1MDEyYzY0OTBlMTFlYTQ0NjFjODk2MzcxMDUiXSA+IC50Yi1ncmlkLWNvbHVtbjpudGgtb2YtdHlwZSgzbiArIDMpIHsgZ3JpZC1jb2x1bW46IDMgfSAgIC50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSIzMDM0ZmJlODg2YzExMDU0ZTk1YjQ2YjA5ZDNlNDExMiJdIHsgZGlzcGxheTogZmxleDsgfSAudGItYnV0dG9uW2RhdGEtdG9vbHNldC1ibG9ja3MtYnV0dG9uPSJkOTVmY2Q4YmYwZmFhYjVjZDkyNmVkYjM3M2Q0OGVmZCJdIHsgZGlzcGxheTogbm9uZTsgfSAgfSA=
Use the following code with care, it makes direct queries of the relationship tables because of some omissions in the official API.
If cloning a post which has RFGs or child posts in a one-to-many relationship, the child posts/RFGs will be duplicated and then assigned to the newly cloned parent post. If a child post is cloned, the newly cloned post will be assigned to the same existing parent. No action is taken with many-to-many relationships as everyone’s requirements may differ.
/**
* Handle related posts (incl. RFGs) when duplicating post with Yoast Duplicate Post plugin
*
* @param int $new_post_id The newly created post's ID.
* @param WP_Post $post The original post's object.
*
* CASES
*
* 1. When cloning a post with RFGs, duplicate the RFGs and assign to the cloned post
* 2. When cloning a parent post, duplicate the child posts and assign to the cloned post
* 3. When cloning a child post, assign to the same parent as the original post
* 4. No action with M2M relationships, no clear use case
*/
add_action( 'dp_duplicate_post', 'ts_clone_posts', 10, 3 );
function ts_clone_posts( $new_post_id, $post, $status ) {
/**
* First, what relationships—if any—is the cloned post type involved in?
* (No API function available, query DB directly)
*/
global $wpdb;
$query = $wpdb->prepare(
"
SELECT set_id
FROM {$wpdb->prefix}toolset_type_sets
WHERE type LIKE '%s'
",
$post->post_type
);
$set_ids_array = $wpdb->get_results(
$query,
ARRAY_A
);
// If not part of any relationships then quit
if ( !( isset( $set_ids_array ) && is_array( $set_ids_array ) ) )
return;
/**
* CASES 1 and 2
* Where the cloned post is a parent (O2M) or has RFGs
* Can't just use toolset_get_related_post_types because it doesn't include RFGs, so direct query again
*/
$set_ids = array_column( $set_ids_array, 'set_id' );
$set_ids_list = implode(",", $set_ids);
$relationships = $wpdb->get_results(
"
SELECT slug
FROM {$wpdb->prefix}toolset_relationships
WHERE parent_types IN ({$set_ids_list})
",
ARRAY_A
);
if ( isset( $relationships ) && is_array( $relationships ) )
{
$relationship_slugs = array_column( $relationships, 'slug' );
// This is an array of the relationships where $post->post_type is a parent
foreach ($relationship_slugs as $relationship_slug)
{
$relationship_definition = toolset_get_relationship( $relationship_slug );
$child_type = $relationship_definition['roles']['child']['types'][0];
// Ignore is this is a 'parent' in a M2M relationship
if ( isset( $relationship_definition ) && is_array( $relationship_definition ) && $relationship_definition['cardinality']['type'] != 'many-to-many' )
{
$children = toolset_get_related_posts( $post, $relationship_slug, array(
'query_by_role' => 'parent',
'role_to_return' => 'child',
'return' => 'post_object'
)
);
// Update on the fly duplicate post plugin option for allowed post types to be sure we can duplicate the children
add_filter( 'option_duplicate_post_types_enabled', static function( $values ) use ( $child_type ){
if ( is_array( $values ) ){
$values[] = $child_type;
}
return $values;
} );
// Unhook our code first to avoid recursion (optional)
remove_action( 'dp_duplicate_post', 'ts_clone_posts' );
// Duplicate the child posts (using the Yoast Duplicate Plugin API)
foreach ($children as $key => $child)
{
$new_child_id = duplicate_post_create_duplicate( $child );
if ( isset( $new_child_id ) )
{
toolset_connect_posts( $relationship_slug, $new_post_id, $new_child_id );
}
}
// add back our hook callback
add_action( 'dp_duplicate_post', 'ts_clone_posts', 10, 3 );
}
}
}
/**
* CASE 3: Where the cloned post is a child post
*/
$parent_types = toolset_get_related_post_types( 'parent', $post->post_type );
if ( isset( $parent_types ) && is_array( $parent_types ) ){
foreach ($parent_types as $parent_type => $relationship) {
// But are these relationships O2M relationships?
$relationship_definition = toolset_get_relationship( $relationship[0] );
if ( isset( $relationship_definition ) && is_array( $relationship_definition ) && $relationship_definition['cardinality']['type'] == 'one-to-many' )
{
// In this relationship this post type is a child, and can have only one parent
$parent_id = toolset_get_related_post( $post, $relationship[0], 'parent' );
if ( isset( $parent_id ) && $parent_id != 0 ){
// Update the cloned post with the same parent
toolset_connect_posts( $relationship[0], $parent_id, $new_post_id );
}
}
}
}
}