Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/jetpack/modules/sharedad...
File: sharing-service.php
break;
[500] Fix | Delete
}
[501] Fix | Delete
}
[502] Fix | Delete
[503] Fix | Delete
if ( ! isset( $this->global['sharing_label'] ) || false === $this->global['sharing_label'] || $this->global['sharing_label'] === 'Share this:' ) {
[504] Fix | Delete
$this->global['sharing_label'] = $this->default_sharing_label;
[505] Fix | Delete
}
[506] Fix | Delete
[507] Fix | Delete
return $this->global;
[508] Fix | Delete
}
[509] Fix | Delete
[510] Fix | Delete
/**
[511] Fix | Delete
* Save a sharing service for use.
[512] Fix | Delete
*
[513] Fix | Delete
* @param int $id Sharing unique ID.
[514] Fix | Delete
* @param Sharing_Advanced_Source $service Sharing service.
[515] Fix | Delete
*
[516] Fix | Delete
* @return void
[517] Fix | Delete
*/
[518] Fix | Delete
public function set_service( $id, Sharing_Advanced_Source $service ) {
[519] Fix | Delete
// Update the options for this service
[520] Fix | Delete
$options = get_option( 'sharing-options' );
[521] Fix | Delete
[522] Fix | Delete
// No options yet
[523] Fix | Delete
if ( ! is_array( $options ) ) {
[524] Fix | Delete
$options = array();
[525] Fix | Delete
}
[526] Fix | Delete
[527] Fix | Delete
/**
[528] Fix | Delete
* Get the state of a sharing button.
[529] Fix | Delete
*
[530] Fix | Delete
* @module sharedaddy
[531] Fix | Delete
*
[532] Fix | Delete
* @since 1.1.0
[533] Fix | Delete
*
[534] Fix | Delete
* @param array $args {
[535] Fix | Delete
* State of a sharing button.
[536] Fix | Delete
*
[537] Fix | Delete
* @type string $id Service ID.
[538] Fix | Delete
* @type array $options Array of all sharing options.
[539] Fix | Delete
* @type array $service Details about a service.
[540] Fix | Delete
* }
[541] Fix | Delete
*/
[542] Fix | Delete
do_action(
[543] Fix | Delete
'sharing_get_button_state',
[544] Fix | Delete
array(
[545] Fix | Delete
'id' => $id,
[546] Fix | Delete
'options' => $options,
[547] Fix | Delete
'service' => $service,
[548] Fix | Delete
)
[549] Fix | Delete
);
[550] Fix | Delete
[551] Fix | Delete
$options[ $id ] = $service->get_options();
[552] Fix | Delete
[553] Fix | Delete
update_option( 'sharing-options', array_filter( $options ) );
[554] Fix | Delete
}
[555] Fix | Delete
[556] Fix | Delete
/**
[557] Fix | Delete
* Get stats for a site, a post, or a sharing service.
[558] Fix | Delete
* Soon to come to a .org plugin near you!
[559] Fix | Delete
*
[560] Fix | Delete
* @param string|bool $service_name Service name.
[561] Fix | Delete
* @param int|bool $post_id Post ID.
[562] Fix | Delete
* @param int|bool $_blog_id Blog ID.
[563] Fix | Delete
*
[564] Fix | Delete
* @return int
[565] Fix | Delete
*/
[566] Fix | Delete
public function get_total( $service_name = false, $post_id = false, $_blog_id = false ) {
[567] Fix | Delete
global $wpdb, $blog_id;
[568] Fix | Delete
if ( ! $_blog_id ) {
[569] Fix | Delete
$_blog_id = $blog_id;
[570] Fix | Delete
}
[571] Fix | Delete
if ( $service_name === false ) {
[572] Fix | Delete
if ( $post_id > 0 ) {
[573] Fix | Delete
// total number of shares for this post
[574] Fix | Delete
$sql = $wpdb->prepare( 'SELECT SUM( count ) FROM sharing_stats WHERE blog_id = %d AND post_id = %d', $_blog_id, $post_id );
[575] Fix | Delete
$cache_key = "sharing_service_get_total_b{$_blog_id}_p{$post_id}";
[576] Fix | Delete
} else {
[577] Fix | Delete
// total number of shares for this blog
[578] Fix | Delete
$sql = $wpdb->prepare( 'SELECT SUM( count ) FROM sharing_stats WHERE blog_id = %d', $_blog_id );
[579] Fix | Delete
$cache_key = "sharing_service_get_total_b{$_blog_id}";
[580] Fix | Delete
}
[581] Fix | Delete
} elseif ( $post_id > 0 ) {
[582] Fix | Delete
$sql = $wpdb->prepare( 'SELECT SUM( count ) FROM sharing_stats WHERE blog_id = %d AND post_id = %d AND share_service = %s', $_blog_id, $post_id, $service_name );
[583] Fix | Delete
$cache_key = "sharing_service_get_total_b{$_blog_id}_p{$post_id}_s{$service_name}";
[584] Fix | Delete
} else {
[585] Fix | Delete
$sql = $wpdb->prepare( 'SELECT SUM( count ) FROM sharing_stats WHERE blog_id = %d AND share_service = %s', $_blog_id, $service_name );
[586] Fix | Delete
$cache_key = "sharing_service_get_total_b{$_blog_id}_s{$service_name}";
[587] Fix | Delete
}
[588] Fix | Delete
[589] Fix | Delete
$ret = wp_cache_get( $cache_key, 'sharing' );
[590] Fix | Delete
if ( $ret === false ) {
[591] Fix | Delete
// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery -- Prepared above.
[592] Fix | Delete
$ret = (int) $wpdb->get_var( $sql );
[593] Fix | Delete
wp_cache_set( $cache_key, $ret, 'sharing', 5 * MINUTE_IN_SECONDS );
[594] Fix | Delete
}
[595] Fix | Delete
return $ret;
[596] Fix | Delete
}
[597] Fix | Delete
[598] Fix | Delete
/**
[599] Fix | Delete
* Get total stats for a site, for all sharing services.
[600] Fix | Delete
*
[601] Fix | Delete
* @param int|bool $post_id Post ID.
[602] Fix | Delete
*
[603] Fix | Delete
* @return array
[604] Fix | Delete
*/
[605] Fix | Delete
public function get_services_total( $post_id = false ) {
[606] Fix | Delete
$totals = array();
[607] Fix | Delete
$services = $this->get_blog_services();
[608] Fix | Delete
[609] Fix | Delete
if ( ! empty( $services ) && isset( $services['all'] ) ) {
[610] Fix | Delete
foreach ( $services['all'] as $key => $value ) {
[611] Fix | Delete
$totals[ $key ] = new Sharing_Service_Total( $key, $this->get_total( $key, $post_id ) );
[612] Fix | Delete
}
[613] Fix | Delete
}
[614] Fix | Delete
usort( $totals, array( 'Sharing_Service_Total', 'cmp' ) );
[615] Fix | Delete
[616] Fix | Delete
return $totals;
[617] Fix | Delete
}
[618] Fix | Delete
[619] Fix | Delete
/**
[620] Fix | Delete
* Get sharing stats for all posts on the site.
[621] Fix | Delete
*
[622] Fix | Delete
* @return array
[623] Fix | Delete
*/
[624] Fix | Delete
public function get_posts_total() {
[625] Fix | Delete
$totals = array();
[626] Fix | Delete
global $wpdb, $blog_id;
[627] Fix | Delete
[628] Fix | Delete
$cache_key = "sharing_service_get_posts_total_{$blog_id}";
[629] Fix | Delete
$my_data = wp_cache_get( $cache_key, 'sharing' );
[630] Fix | Delete
if ( $my_data === false ) {
[631] Fix | Delete
$my_data = $wpdb->get_results( $wpdb->prepare( 'SELECT post_id as id, SUM( count ) as total FROM sharing_stats WHERE blog_id = %d GROUP BY post_id ORDER BY count DESC ', $blog_id ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
[632] Fix | Delete
wp_cache_set( $cache_key, $my_data, 'sharing', 5 * MINUTE_IN_SECONDS );
[633] Fix | Delete
}
[634] Fix | Delete
[635] Fix | Delete
if ( ! empty( $my_data ) ) {
[636] Fix | Delete
foreach ( $my_data as $row ) {
[637] Fix | Delete
$totals[] = new Sharing_Post_Total( $row->id, $row->total );
[638] Fix | Delete
}
[639] Fix | Delete
}
[640] Fix | Delete
[641] Fix | Delete
usort( $totals, array( 'Sharing_Post_Total', 'cmp' ) );
[642] Fix | Delete
[643] Fix | Delete
return $totals;
[644] Fix | Delete
}
[645] Fix | Delete
}
[646] Fix | Delete
[647] Fix | Delete
/**
[648] Fix | Delete
* Get stats for a specific sharing service.
[649] Fix | Delete
*/
[650] Fix | Delete
class Sharing_Service_Total {
[651] Fix | Delete
/**
[652] Fix | Delete
* Sharing service ID.
[653] Fix | Delete
*
[654] Fix | Delete
* @var int
[655] Fix | Delete
*/
[656] Fix | Delete
public $id = '';
[657] Fix | Delete
[658] Fix | Delete
/**
[659] Fix | Delete
* Service name.
[660] Fix | Delete
*
[661] Fix | Delete
* @var string
[662] Fix | Delete
*/
[663] Fix | Delete
public $name = '';
[664] Fix | Delete
[665] Fix | Delete
/**
[666] Fix | Delete
* Sharing service name.
[667] Fix | Delete
*
[668] Fix | Delete
* @var string
[669] Fix | Delete
*/
[670] Fix | Delete
public $service = '';
[671] Fix | Delete
[672] Fix | Delete
/**
[673] Fix | Delete
* Total number of shares for this service.
[674] Fix | Delete
*
[675] Fix | Delete
* @var string
[676] Fix | Delete
*/
[677] Fix | Delete
public $total = 0;
[678] Fix | Delete
[679] Fix | Delete
/**
[680] Fix | Delete
* Constructor.
[681] Fix | Delete
*
[682] Fix | Delete
* @param int $id Service ID.
[683] Fix | Delete
* @param int $total Total shares.
[684] Fix | Delete
*/
[685] Fix | Delete
public function __construct( $id, $total ) {
[686] Fix | Delete
$services = new Sharing_Service();
[687] Fix | Delete
$this->id = esc_html( $id );
[688] Fix | Delete
$this->service = $services->get_service( $id );
[689] Fix | Delete
$this->total = (int) $total;
[690] Fix | Delete
[691] Fix | Delete
if ( $this->service instanceof Sharing_Source ) {
[692] Fix | Delete
$this->name = $this->service->get_name();
[693] Fix | Delete
}
[694] Fix | Delete
}
[695] Fix | Delete
[696] Fix | Delete
/**
[697] Fix | Delete
* Compare total shares between 2 posts.
[698] Fix | Delete
*
[699] Fix | Delete
* @param object $a Sharing_Service_Total object.
[700] Fix | Delete
* @param object $b Sharing_Service_Total object.
[701] Fix | Delete
*
[702] Fix | Delete
* @return int -1, 0, or 1 if $a is <, =, or > $b
[703] Fix | Delete
*/
[704] Fix | Delete
public static function cmp( $a, $b ) {
[705] Fix | Delete
if ( $a->total === $b->total ) {
[706] Fix | Delete
return $b->name <=> $a->name;
[707] Fix | Delete
}
[708] Fix | Delete
return $b->total <=> $a->total;
[709] Fix | Delete
}
[710] Fix | Delete
}
[711] Fix | Delete
[712] Fix | Delete
/**
[713] Fix | Delete
* Get sharing stats for a specific post.
[714] Fix | Delete
*/
[715] Fix | Delete
class Sharing_Post_Total {
[716] Fix | Delete
/**
[717] Fix | Delete
* Sharing service ID.
[718] Fix | Delete
*
[719] Fix | Delete
* @var int
[720] Fix | Delete
*/
[721] Fix | Delete
public $id = 0;
[722] Fix | Delete
[723] Fix | Delete
/**
[724] Fix | Delete
* Total shares.
[725] Fix | Delete
*
[726] Fix | Delete
* @var int
[727] Fix | Delete
*/
[728] Fix | Delete
public $total = 0;
[729] Fix | Delete
[730] Fix | Delete
/**
[731] Fix | Delete
* Post title.
[732] Fix | Delete
*
[733] Fix | Delete
* @var string
[734] Fix | Delete
*/
[735] Fix | Delete
public $title = '';
[736] Fix | Delete
[737] Fix | Delete
/**
[738] Fix | Delete
* Post permalink.
[739] Fix | Delete
*
[740] Fix | Delete
* @var string
[741] Fix | Delete
*/
[742] Fix | Delete
public $url = '';
[743] Fix | Delete
[744] Fix | Delete
/**
[745] Fix | Delete
* Constructor.
[746] Fix | Delete
*
[747] Fix | Delete
* @param int $id Service ID.
[748] Fix | Delete
* @param int $total Total shares.
[749] Fix | Delete
*/
[750] Fix | Delete
public function __construct( $id, $total ) {
[751] Fix | Delete
$this->id = (int) $id;
[752] Fix | Delete
$this->total = (int) $total;
[753] Fix | Delete
$this->title = get_the_title( $this->id );
[754] Fix | Delete
$this->url = get_permalink( $this->id );
[755] Fix | Delete
}
[756] Fix | Delete
[757] Fix | Delete
/**
[758] Fix | Delete
* Compare total shares between 2 posts.
[759] Fix | Delete
*
[760] Fix | Delete
* @param object $a Sharing_Post_Total object.
[761] Fix | Delete
* @param object $b Sharing_Post_Total object.
[762] Fix | Delete
*
[763] Fix | Delete
* @return int -1, 0, or 1 if $a is <, =, or > $b
[764] Fix | Delete
*/
[765] Fix | Delete
public static function cmp( $a, $b ) {
[766] Fix | Delete
if ( $a->total === $b->total ) {
[767] Fix | Delete
return $b->id <=> $a->id;
[768] Fix | Delete
}
[769] Fix | Delete
return $b->total <=> $a->total;
[770] Fix | Delete
}
[771] Fix | Delete
}
[772] Fix | Delete
[773] Fix | Delete
/**
[774] Fix | Delete
* Populate sharing counts global with a post we want to count shares for.
[775] Fix | Delete
*
[776] Fix | Delete
* @param int $post_id Post ID.
[777] Fix | Delete
*
[778] Fix | Delete
* @return void
[779] Fix | Delete
*/
[780] Fix | Delete
function sharing_register_post_for_share_counts( $post_id ) {
[781] Fix | Delete
global $jetpack_sharing_counts;
[782] Fix | Delete
[783] Fix | Delete
if ( ! isset( $jetpack_sharing_counts ) || ! is_array( $jetpack_sharing_counts ) ) {
[784] Fix | Delete
$jetpack_sharing_counts = array();
[785] Fix | Delete
}
[786] Fix | Delete
[787] Fix | Delete
$jetpack_sharing_counts[ (int) $post_id ] = get_permalink( $post_id );
[788] Fix | Delete
}
[789] Fix | Delete
[790] Fix | Delete
/**
[791] Fix | Delete
* Determine whether we should load sharing scripts or not.
[792] Fix | Delete
*
[793] Fix | Delete
* @return bool
[794] Fix | Delete
*/
[795] Fix | Delete
function sharing_maybe_enqueue_scripts() {
[796] Fix | Delete
$sharer = new Sharing_Service();
[797] Fix | Delete
$global_options = $sharer->get_global_options();
[798] Fix | Delete
[799] Fix | Delete
$enqueue = false;
[800] Fix | Delete
if ( is_singular() && in_array( get_post_type(), $global_options['show'], true ) ) {
[801] Fix | Delete
$enqueue = true;
[802] Fix | Delete
} elseif (
[803] Fix | Delete
in_array( 'index', $global_options['show'], true )
[804] Fix | Delete
&& (
[805] Fix | Delete
is_home()
[806] Fix | Delete
|| is_front_page()
[807] Fix | Delete
|| is_archive()
[808] Fix | Delete
|| is_search()
[809] Fix | Delete
|| in_array( get_post_type(), $global_options['show'], true )
[810] Fix | Delete
)
[811] Fix | Delete
) {
[812] Fix | Delete
$enqueue = true;
[813] Fix | Delete
}
[814] Fix | Delete
[815] Fix | Delete
/**
[816] Fix | Delete
* Filter to decide when sharing scripts should be enqueued.
[817] Fix | Delete
*
[818] Fix | Delete
* @module sharedaddy
[819] Fix | Delete
*
[820] Fix | Delete
* @since 3.2.0
[821] Fix | Delete
*
[822] Fix | Delete
* @param bool $enqueue Decide if the sharing scripts should be enqueued.
[823] Fix | Delete
*/
[824] Fix | Delete
return (bool) apply_filters( 'sharing_enqueue_scripts', $enqueue );
[825] Fix | Delete
}
[826] Fix | Delete
[827] Fix | Delete
/**
[828] Fix | Delete
* Add sharing JavaScript to the footer of a page.
[829] Fix | Delete
*
[830] Fix | Delete
* @return void
[831] Fix | Delete
*/
[832] Fix | Delete
function sharing_add_footer() {
[833] Fix | Delete
if (
[834] Fix | Delete
class_exists( 'Jetpack_AMP_Support' )
[835] Fix | Delete
&& Jetpack_AMP_Support::is_amp_request()
[836] Fix | Delete
) {
[837] Fix | Delete
return;
[838] Fix | Delete
}
[839] Fix | Delete
[840] Fix | Delete
global $jetpack_sharing_counts;
[841] Fix | Delete
[842] Fix | Delete
if (
[843] Fix | Delete
/**
[844] Fix | Delete
* Filter all JavaScript output by the sharing module.
[845] Fix | Delete
*
[846] Fix | Delete
* @module sharedaddy
[847] Fix | Delete
*
[848] Fix | Delete
* @since 1.1.0
[849] Fix | Delete
*
[850] Fix | Delete
* @param bool true Control whether the sharing module should add any JavaScript to the site. Default to true.
[851] Fix | Delete
*/
[852] Fix | Delete
apply_filters( 'sharing_js', true )
[853] Fix | Delete
&& sharing_maybe_enqueue_scripts()
[854] Fix | Delete
) {
[855] Fix | Delete
if (
[856] Fix | Delete
/**
[857] Fix | Delete
* Filter the display of sharing counts next to the sharing buttons.
[858] Fix | Delete
*
[859] Fix | Delete
* @module sharedaddy
[860] Fix | Delete
*
[861] Fix | Delete
* @since 3.2.0
[862] Fix | Delete
*
[863] Fix | Delete
* @param bool true Control the display of counters next to the sharing buttons. Default to true.
[864] Fix | Delete
*/
[865] Fix | Delete
apply_filters( 'jetpack_sharing_counts', true )
[866] Fix | Delete
&& is_array( $jetpack_sharing_counts )
[867] Fix | Delete
&& count( $jetpack_sharing_counts )
[868] Fix | Delete
) :
[869] Fix | Delete
$sharing_post_urls = array_filter( $jetpack_sharing_counts );
[870] Fix | Delete
if ( $sharing_post_urls ) :
[871] Fix | Delete
?>
[872] Fix | Delete
[873] Fix | Delete
<script type="text/javascript">
[874] Fix | Delete
window.WPCOM_sharing_counts = <?php echo wp_json_encode( array_flip( $sharing_post_urls ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>;
[875] Fix | Delete
</script>
[876] Fix | Delete
<?php
[877] Fix | Delete
endif;
[878] Fix | Delete
endif;
[879] Fix | Delete
[880] Fix | Delete
wp_enqueue_script( 'sharing-js' );
[881] Fix | Delete
$sharing_js_options = array(
[882] Fix | Delete
'lang' => get_base_recaptcha_lang_code(),
[883] Fix | Delete
/** This filter is documented in modules/sharedaddy/sharing-service.php */
[884] Fix | Delete
'counts' => apply_filters( 'jetpack_sharing_counts', true ),
[885] Fix | Delete
'is_stats_active' => Jetpack::is_module_active( 'stats' ),
[886] Fix | Delete
);
[887] Fix | Delete
wp_localize_script( 'sharing-js', 'sharing_js_options', $sharing_js_options );
[888] Fix | Delete
}
[889] Fix | Delete
$sharer = new Sharing_Service();
[890] Fix | Delete
$enabled = $sharer->get_blog_services();
[891] Fix | Delete
foreach ( array_merge( $enabled['visible'], $enabled['hidden'] ) as $service ) {
[892] Fix | Delete
$service->display_footer();
[893] Fix | Delete
}
[894] Fix | Delete
}
[895] Fix | Delete
[896] Fix | Delete
/**
[897] Fix | Delete
* Enqueue sharing CSS in head.
[898] Fix | Delete
*
[899] Fix | Delete
* @return void
[900] Fix | Delete
*/
[901] Fix | Delete
function sharing_add_header() {
[902] Fix | Delete
$sharer = new Sharing_Service();
[903] Fix | Delete
$enabled = $sharer->get_blog_services();
[904] Fix | Delete
[905] Fix | Delete
foreach ( array_merge( $enabled['visible'], $enabled['hidden'] ) as $service ) {
[906] Fix | Delete
$service->display_header();
[907] Fix | Delete
}
[908] Fix | Delete
[909] Fix | Delete
if ( is_countable( $enabled['all'] ) && ( count( $enabled['all'] ) > 0 ) && sharing_maybe_enqueue_scripts() ) {
[910] Fix | Delete
wp_enqueue_style( 'sharedaddy', plugin_dir_url( __FILE__ ) . 'sharing.css', array(), JETPACK__VERSION );
[911] Fix | Delete
wp_enqueue_style( 'social-logos' );
[912] Fix | Delete
}
[913] Fix | Delete
}
[914] Fix | Delete
add_action( 'wp_head', 'sharing_add_header', 1 );
[915] Fix | Delete
[916] Fix | Delete
/**
[917] Fix | Delete
* Launch sharing requests on page load when a specific query string is used.
[918] Fix | Delete
*
[919] Fix | Delete
* @return void
[920] Fix | Delete
*/
[921] Fix | Delete
function sharing_process_requests() {
[922] Fix | Delete
global $post;
[923] Fix | Delete
[924] Fix | Delete
// Only process if: single post and share=X defined
[925] Fix | Delete
if ( ( is_page() || is_single() ) && isset( $_GET['share'] ) && is_string( $_GET['share'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
[926] Fix | Delete
$sharer = new Sharing_Service();
[927] Fix | Delete
[928] Fix | Delete
$service = $sharer->get_service( sanitize_text_field( wp_unslash( $_GET['share'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
[929] Fix | Delete
if ( $service ) {
[930] Fix | Delete
$service->process_request( $post, $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
[931] Fix | Delete
}
[932] Fix | Delete
}
[933] Fix | Delete
}
[934] Fix | Delete
[935] Fix | Delete
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Only checking for the data being present.
[936] Fix | Delete
if ( isset( $_GET['share'] ) ) {
[937] Fix | Delete
add_action( 'template_redirect', 'sharing_process_requests', 9 );
[938] Fix | Delete
}
[939] Fix | Delete
[940] Fix | Delete
/**
[941] Fix | Delete
* Gets the url to customise the sharing buttons in WP-Admin.
[942] Fix | Delete
*
[943] Fix | Delete
* @return string the customisation URL.
[944] Fix | Delete
*/
[945] Fix | Delete
function get_sharing_buttons_customisation_url() {
[946] Fix | Delete
return admin_url( 'options-general.php?page=sharing' );
[947] Fix | Delete
}
[948] Fix | Delete
[949] Fix | Delete
/**
[950] Fix | Delete
* Append sharing links to text.
[951] Fix | Delete
*
[952] Fix | Delete
* @param string $text The original text to append sharing links onto.
[953] Fix | Delete
* @param bool $echo Where to echo the text or return.
[954] Fix | Delete
*
[955] Fix | Delete
* @return string The original $text with, if conditions are met, the sharing links.
[956] Fix | Delete
*/
[957] Fix | Delete
function sharing_display( $text = '', $echo = false ) {
[958] Fix | Delete
global $post, $wp_current_filter;
[959] Fix | Delete
[960] Fix | Delete
if ( Settings::is_syncing() ) {
[961] Fix | Delete
return $text;
[962] Fix | Delete
}
[963] Fix | Delete
[964] Fix | Delete
// We require the post to not be empty and be an actual WordPress post object. If it's not - we just return.
[965] Fix | Delete
if ( empty( $post ) || ! $post instanceof \WP_Post ) {
[966] Fix | Delete
return $text;
[967] Fix | Delete
}
[968] Fix | Delete
[969] Fix | Delete
if ( ( is_preview() || is_admin() ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
[970] Fix | Delete
return $text;
[971] Fix | Delete
}
[972] Fix | Delete
[973] Fix | Delete
// Prevent from rendering sharing buttons in block which is fetched from REST endpoint by editor
[974] Fix | Delete
if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
[975] Fix | Delete
return $text;
[976] Fix | Delete
}
[977] Fix | Delete
[978] Fix | Delete
// Do not output sharing buttons for ActivityPub requests.
[979] Fix | Delete
if (
[980] Fix | Delete
function_exists( '\Activitypub\is_activitypub_request' )
[981] Fix | Delete
&& \Activitypub\is_activitypub_request()
[982] Fix | Delete
) {
[983] Fix | Delete
return $text;
[984] Fix | Delete
}
[985] Fix | Delete
[986] Fix | Delete
// Don't output flair on excerpts.
[987] Fix | Delete
if ( in_array( 'get_the_excerpt', (array) $wp_current_filter, true ) ) {
[988] Fix | Delete
return $text;
[989] Fix | Delete
}
[990] Fix | Delete
[991] Fix | Delete
// Ensure we don't display sharing buttons on post excerpts that are hooked inside the post content
[992] Fix | Delete
if ( in_array( 'the_excerpt', (array) $wp_current_filter, true ) &&
[993] Fix | Delete
in_array( 'the_content', (array) $wp_current_filter, true ) ) {
[994] Fix | Delete
return $text;
[995] Fix | Delete
}
[996] Fix | Delete
[997] Fix | Delete
// Don't allow flair to be added to the_content more than once (prevent infinite loops).
[998] Fix | Delete
$done = false;
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function