Wie an den Titel über functions.php angehängt wird, um das Plug-In automatisch zu posten

Was ich bis jetzt habe

Ich habe endlich das functions.php plugin, um einen String an benutzerdefinierte Post-Titel eines bestimmten Post-Typs mit dieser function anzuhängen:

 function append_album_review_to_title( $title ) { global $post; $text = 'Album Review: '; if ( get_post_type( $post->ID ) == 'album_review' && in_the_loop() ){ return $text . $title; } else { return $title; } } if(function_exists('add_filter')) { add_filter('the_title', 'append_album_review_to_title'); } 

und obwohl es fast alles tut, was ich brauche, fügt es die Zeichenfolge immer noch nicht an Titel an, wie sie über Auto-Posting-Plugins gepostet werden.

Das Problem

Das Plugin, das ich benutze, ist NextScripts: Social Networks Auto Poster und überall, wo ich den Titel sehen kann, wird die gewünschte Zeichenfolge angehängt, aber wenn dieses Plugin automatisch postet, wird die Zeichenfolge nicht angehängt.

Die Frage

Wie kann ich meine function so ändern, dass sie auch auf die Titel angewendet wird, die durch automatische Plug-ins ausgegeben werden?


AKTUALISIEREN 1

Warum in_the_loop() ?

Ich benutze in_the_loop() denn wenn nicht, wird die Zeichenfolge an jeden Link auf der Seite angehängt. Ich denke, das kann passieren, weil der post_type, an den ich anhänge, ein benutzerdefinierter Typ ist. Ich habe gerade versucht, es zu entfernen, und natürlich wurde “Album Review:” zu jedem einzelnen Link auf der Seite hinzugefügt.

functioniert %FULLTITLE% nur mit manuellen s?

Ich habe versucht, %FULLTITLE% ohne manuelle -Tags wie beschrieben zu verwenden, aber es scheint die Zeichenfolge nicht anzuhängen. Der Grund, warum ich es auf diese Weise versucht habe, ist, weil das YOAST-Plugin (wie du sagtest) nicht nur diese Tags bereits enthält, sondern weil es bereits “Album Review:” an den Titel angehängt hat, wo es nötig ist. Wenn ich also die Quelle überprüfe, sind die Tags in wie folgt:

Ist YOASTs Anhang nicht genug, und ich muss die manuellen Tags machen?

(Entschuldigung für diese Form der Kommunikation; WordPress StackExchange erlaubt mir immer noch nicht zu kommentieren oder upvote.)

Solutions Collecting From Web of "Wie an den Titel über functions.php angehängt wird, um das Plug-In automatisch zu posten"

Whoa, dieses Plugin war ein Albtraum, um durchzusehen.

Aber ich habe eine Lösung für dich. In der Beschreibung für Ihre Links können Sie den Platzhalter %FULLTITLE% anstelle von %TITLE% . %FULLTITLE% wendet die Filter für den Titel an.

Von nxs_functions_adv.php Zeilen 19 & 20:

 if (preg_match('/%TITLE%/', $msg)) { $title = nxs_doQTrans($post->post_title, $lng); $msg = str_ireplace("%TITLE%", $title, $msg); } if (preg_match('/%FULLTITLE%/', $msg)) { $title = apply_filters('the_title', nxs_doQTrans($post->post_title, $lng)); $msg = str_ireplace("%FULLTITLE%", $title, $msg); } 

Ja, so wird der Code im Plugin formatiert.

Dies triggers Ihr erstes Problem.

Als nächstes fügen Sie dem Header Open Graph-Informationen hinzu und wenden den Titelfilter darauf an. Zum Beispiel für Facebook (Original von WPBeginner ):

 //Adding the Open Graph in the Language Attributes function f711_add_opengraph_doctype( $output ) { return $output . ' xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"'; } add_filter('language_attributes', 'f711_add_opengraph_doctype'); //Lets add Open Graph Meta Info function f711_insert_fb_in_head() { global $post; if ( !is_singular()) //if it is not a post or a page return; echo ''; echo ''; echo ''; echo ''; if(!has_post_thumbnail( $post->ID )) { //the post does not have featured image, use a default image $default_image="http://example.com/image.jpg"; //replace this with a default image on your server or an image in your media library echo ''; } else{ $thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' ); echo ''; } echo " "; } add_action( 'wp_head', 'f711_insert_fb_in_head', 5 ); 

WICHTIG , stellen Sie sicher, dass Sie diese Informationen nicht bereits enthalten. Zum Beispiel macht YOAST SEO das – und das könnte für Facebook verwirrend werden. Sie verwenden diese Informationen als Titel ihrer Linkboxen.

Schließlich würde ich eine Änderung Ihrer function vorschlagen: Verlieren Sie die in_the_loop() , damit der Filter überall angewendet werden kann. Wie @PieterGoosen heraushob, übersprang ich die unnötige Überprüfung von function_exists() .

 function append_album_review_to_title( $title ) { global $post; $text = 'Album Review: '; if ( get_post_type( $post->ID ) == 'album_review' ){ return $text . $title; } else { return $title; } } add_filter('the_title', 'append_album_review_to_title');