Daha onceki yazimizda WP-CLI ‘den bahsetmistik, simdi gelelim WP-CLI ile kendi komutlarimizi nasil olusturabilecegimize.
Aslinda olay cok basit, komutunuzda calistirmak istediginiz class’i WP_CLI_Command ‘dan extend etmek.
Direkt kod uzerinden aciklamanin daha faydali olacagini dusunuyorum;
Ornek: Yazdigimiz kod getir
adinda bir komut olusturacak ve son_yazilar
method’u ile son yayimlanan yazilari listeleyebilecegiz. Son yazilari listelerken --count=50
gibi istege bagli bir parametre ile de listelenecek yazi sayisini degistirebilecegiz.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if ( ! defined( 'ABSPATH' ) ) { | |
exit; // Exit if accessed directly. | |
} | |
if ( defined( 'WP_CLI' ) && WP_CLI ) { | |
class WPH_CLI_Command extends WP_CLI_Command { | |
function __construct() { | |
} | |
function son_yazilar( $args, $assoc_args ) { | |
if ( ! ( $count = $assoc_args['count'] ) ) { | |
$count = 10; | |
} | |
$args = array( | |
'numberposts' => $count, | |
'orderby' => 'post_date', | |
'order' => 'DESC', | |
'post_type' => 'post', | |
'post_status' => 'publish', | |
'suppress_filters' => true, | |
); | |
$recent_posts = wp_get_recent_posts( $args, OBJECT ); | |
foreach ( $recent_posts as $post ) { | |
$title = str_pad( $post->post_title, 30, "." ); | |
echo WP_CLI::colorize( "%b$title%n " ) . "\n"; | |
} | |
} | |
} | |
WP_CLI::add_command( 'getir', 'WPH_CLI_Command' ); | |
} |
Yukaridaki kodun ciktisi
Ornek cok basit oldu ancak, ozellikle bulk islem gibi arayuzden yapmasi pratik olmayan isler icin kendi komutlarinizi uretebilirsiniz.
WP_CLI’nin guzel yardimci fonksiyonlari bulunuyor. Suraya bakmaniz faydali.
Yazdigimiz cli scriptlerini WordPress’in yukleyecegi her hangi bir konumda tutabilirsiniz sahsen genellikle eklenti dizini icerisinde bin dizini altinda tutuyorum.
if ( defined( 'WP_CLI' ) && WP_CLI ) { require_once 'bin/example-cli.php'; }
plugin’in ana dosyasinda WP_CLI kontrolu yapip yukletebilirsiniz.
Bir yanıt yazın